react-router v4 參數傳遞有3中方式,分別是params,query 和 state。
1. params(路徑參數)
parrams的傳遞要在路由配置上添加參數,是路由路徑的一部分,在斜杠后面寫參數,就是路徑參數。
//路由表 <Route path='/user/:id ' component={User}></Route> //Link方式 <Link to={ pathname:' /user/2 '}>XXXX</Link> //js方式 this.props.history.push( { pathname:' /user/2 '}) //接收 this.props.match.params.id
2. search(查詢字符串)
無需修改路由表,直接帶參數即可,需要encode。
//Link方式 <Link to={pathname:' /user',query:{name:'meimei'}}> //js方式 this.props.history.push({ pathname:' /user',query:{name:'meimei'}}) //接收方式 this.props.location.query.name //meimei
3. state
無需修改路由表,直接傳遞。
//Link方式 <Link to={{ pathname:' /user', state:{value:123}}}> //js方式 this.props.history.push({ pathname:' /user', state:{value:123}}) //接收方式 this.props.location.state.value
4. hash或自定義參數
//Link方式 <Link to={{ pathname:' /user',hash:'#hashvalue',abc:'def'}}> //js方式 this.props.history.push({ pathname:' /user', hash:'#hashvalue',abc:'def'}) //接收方式 this.props.location.hash //#hashvalue this.props.location.abc //def (自定義參數)