react-router 学习笔记之Link带参数传值

1、通过to='xx/xx'直接条状点击

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

 

  • 精选

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

    ({ ...location, query: { name: 'ryan' } })}>
      Hello

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

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

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

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


    changeRouter = () => {
            console.log(this.props)
            // this.props.router.push('/follow');
            // this.props.router.push({
            //     pathname:'/follow',
            //     state:{name:'xxx'},
            //     query: {foo: 'bar'}
            // })
            
            // this.props.router.replace('/follow');
            this.props.router.replace({
                pathname: '/follow',
                query: {foo:'bar'}
            })
        }
    复制代码



    你可能感兴趣的:(react)