React-router没有填充参数

react-router is not filling params

本文关键字:参数 填充 React-router      更新时间:2023-09-26

我在一个项目上使用react router,当我使用Link标签时,我在新页面上阅读时没有正确填充this.props.params

<Link to='/users/login/' params={{firstParam: 'firstParam'}} query={{firstParam: 'firstParam'}}>link</Link>

有人知道为什么吗?

编辑:我也试过这样做

this.refs.linkToLogin.context.router.transitionTo('/users/login', {firstParam: 'firstParam'});

EDIT2:路由是这样定义的

<Route name="users">
  ...
  <Route name="users-login" path="/users/login" handler={UserPage} />
  ...
</Route>

您的链接设置正确,我预计这是您的路由处理程序的问题。它必须配置为接受回调函数的state参数。你的路由文件应该是这样的:

Router.run(routes, function(Handler, state){
  React.render(<Handler {...state} />, document.querySelector('#foo')
})

这里需要注意的重要事项是回调函数中的state参数被传递给Handler组件

另外,你的路由需要配置为接受动态参数。#props.query应该正确通过,但除非定义了url的动态段,否则params可能不会显示

<Route name='...' path='/users/:firstParam/login' handler={UserPage} />