react-router没有填充params

时间:2015-10-01 17:23:03

标签: javascript reactjs

我在项目中使用了反应路由器,当我使用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>

1 个答案:

答案 0 :(得分:1)

您的链接设置正确,我希望您的路由处理程序出现问题。它必须配置为接受回调函数中的state参数。您的路线文件应如下所示:

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

这里要注意的重要一点是回调函数中的state参数传递给Handler组件

此外,您的路线需要配置为接受动态参数。 #props.query应正确完成,但除非定义了网址的动态细分,否则params可能无法显示

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