react 路由react-router跳转 / react-router-dom 参数的传递

文档


  • 一旦通过Route组件的component属性指明的组件,那么这个路由组件上面就会有路由相关的api
    • location
    • history
    • match
<Route path="/java/a" component={JavaList}></Route>
  1. 在路由跳转的时候传递参数
//传参
<Route path='/Java' render={()=>{
  return <Java x={100}></Java>
   }
}></Route>
//接收参数
console.log(this.props.xxx)
  • 使用 render 渲染进行
  • 在渲染的组件内传值即可
    在这里插入图片描述

可以看到传递的参数,但是本该有的 像第一条的方法并没有获得到,这是因为这样传递参数并不能将当前 this 传递过去,这是需要传递过去

<Route path='/Java' render={(routerProps)=>{
  return <Java {...routerProps} x={100}></Java>
   }
}></Route>
  • render 的 () 里面会自动接收当前this ,只需要把这个this 值传递给相应的页面(组件)即可
  1. link的参数传递(重要)
1.通过动态路由的方式进行参数传递 :id
//传参
<div>
     <li><NavLink to="/java/1" activeStyle={{color:"red"}}>点击跳转</NavLink></li>
     <Route path="/java/:id" component={JavaList}></Route>
</div>
  • 通过 xxx 跳转传递
  • 通过 :id 判断传递的数据
//跳转到的组件接收参数
console.log(this.props.match.params.id)  //得到 1

在这里插入图片描述

2.通过query进行传参 ?xxx=xxx
//传递参数
<div>
     <li><NavLink to="/java/a?title=张三" activeStyle={{color:"red"}}>点击跳转</NavLink></li>
        <Route path="/java/a" component={JavaList}></Route>
</div>
//接收参数
console.log(this.props.location.search)  //得到 ?title=张三

在这里插入图片描述

3.通过state进行隐式传参 to={{pathname:"/xxx",state:{key:vlaue}}}
//传递参数
<div>
     <li><NavLink to={{
         pathname:"/java/a",
         state:{
             title:"张三"
         }
     }} activeStyle={{color:"red"}}>点击跳转</NavLink></li>
        <Route path="/java/a" component={JavaList}></Route>
</div>
//接收参数
cosole.log(this.props.location.state.title)  //得到 张三

在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值