react中使用Link在不同路由之间进行参数传值

1.使用Link 首先需要引入Link 模块。

import { Link } from 'react-router'
 
 
  • 1

2.通过 Link to设置路由跳转地址,以及需要传递的参数对象,注意,此处to 中所携带的路由和参数也是一个对象。

<Link to={{
        pathname: `detail/${id}`,
        state: 'hello',
        }}>点击跳转
</Link> 
 
 
  • 1
  • 2
  • 3
  • 4
  • 5

2、to=对象,带参数跳转(pathname, query, hash, state(额外数据)),注意:这些参数都被存放到this.props.location中

 <li>
     <Link to={ 
         { 
             pathname:"/jump", 
             hash:'#ahash',  
             query:{foo: 'foo', boo:'boo'},  
             state:{data:'hello'}   
         } 
    } activeClassName="GlobalNav-active">点击跳转
     </Link> 
 </li>
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

3、to=函数,注册到路由跳转事件中,每一次路由变化,都会执行该函数,并经最新的location作为参数。

<Link to={location => ({ ...location, query: { name: 'ryan' } })}>
  Hello
</Link>
 
 
  • 1
  • 2
  • 3

4、不使用Link,在函数内直接操作router

旧版本:由于router只用的context传递路由信息,因此每一个组件都可以轻易的通过this.context.router获取路由

新版本:router被放置在this.props中,通过this.props.router可以获取路由

注意:push与replace的区别,一个是添加,一个是替换,历史记录中被替换的已经不存在了,所以浏览器回退不到替换前的页面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值