反应路由器 - 个人道具未定义

时间:2016-10-28 18:36:20

标签: reactjs react-router

Hello people

我试图通过反应路线(user={user})传递道具:

<Router history={browserHistory}>
        <Route path="/" component={MainLayout} user={user}> 
          <IndexRoute component={DocumentsPage}></IndexRoute>
          <Route path="about" component={AboutPage}></Route>
          <Route path=":id/preview" component={PreviewPage}/>
          <Route path="upload" component={UploadPage}></Route>
        </Route>
      </Router>

但在我的布局中,this.props.user未定义。

所以,这是我的两个问题:

  1. 是否可以通过路线传递道具?
  2. 我可以在React中设置类似会话的变量吗?
  3. 谢谢&lt; 3

1 个答案:

答案 0 :(得分:2)

你可以在途中传递道具但是在这种情况下访问道具将是一项繁琐的任务,因为 this.props.routes 包含已加载路线的数组,并且在该数组中,其中一条路线包含你传递的道具,但是如果你为所有路线分配名称道具,那么你可以循环它们并确切地知道哪个路线索引数组包含你想要访问的道具,但更好的选择是使用redux(我的选择)或flux to访问并将道具传递给组件