完整版:https://www.cnblogs.com/yangyangxxb/p/10066650.html

7、react怎么通过路由传参?

  a、通配符传参(刷新页面数据不丢失)

复制代码
//在定义路由的时候

<Route path='/path/:自己起个名字' component={Path}/>


//在路由点击跳转的时候

<Link to="/path/你要传的参数">通配符</Link>


//另一个页面接收传来的参数

this.props.match.params.你起的名字
复制代码

  

       举个🌰

       

     另一个页面接收值的时候:

        this.props.match.params.id

 

  b、query传参(刷新页面数据丢失)

复制代码
//路由定义

<Route path='/query' component={Query}/>

//跳转的时候
var query = {
        pathname: '/query',
        query: '我是通过query传值 '
}

<Link to={query}>query</Link>

//另一个页面使用的时候

this.props.location.query

这里的this.props.location.query === '我是通过query传值'
复制代码

 

  c、state传参(刷新页面数据丢失,同query差不多,只是属性不一样,而且state传的参数是加密的,query传的参数是公开的) 

复制代码
//Route定义

<Link to={state}>state</Link>

//使用的时候

    var state = {
        pathname: '/state',
        state: '我是通过state传值'
    }
    <Route path='/state' component={State}/>

//另一个页面获取值的时候

this.props.location.state

这里的this.props.location.state === '我是通过query传值'
复制代码

 

  d、路由?传参数

           

     此处的foodmenu通过路由?后面传参数

     在另一个页面的this.props.location.search可以获取到 "?id=6" 

posted on 2018-12-06 08:34  薛小白  阅读(669)  评论(0编辑  收藏  举报