2017-08-04 56 views
0

如何通过react-router-4的历史推送方式传递一些信息?我可以通过react-router-4的history.push传递一些内容吗?

  • 使用户的列表
  • 当点击我想直接到新url用户,并通过特定的用户信息
  • 然后呈现在用户信息传递
用户群

当我想到这个时,另一个问题出现了,如果我可以传递用户信息React保留用户的信息?

<List> 
    {users.map(user => 
    <ListItem 
     key={user.id} 
     thumb={use.img} 
     arrow="horizontal" 
     onClick={() => this.handleUserClick(user)} 
    > 
     {user.nickname} 
    </ListItem> 
)} 
</List> 
handleUserClick = (user) => {this.props.history.push(`/user/${user.id}`)} 

回答

0

您可以通过一些状态history's push

handleUserClick = (user => { 
    this.props.history.push(`/user/${user.id}`, {userName: 'Bob'}); 
}) 

然后你就可以从你的组件访问历史

const User = ({history}) => <span>Hello {history.location.state.userName}</span> 

这应该显示 “您好鲍勃”

唐不要滥用这个,而是宁愿将状态保持在父反应组件或b中如果您的应用程序变得更复杂,请使用像redux或mobx这样的库。

+0

还有一些问题。我在'props.location.state.userName'中也看到了userName,这两者之间有什么不同吗?在这个特定的用法中,我怎样才能将这个状态保存在父组件中?我还不知道如何通过'redux'传递这个信息,你能给我多一点信息吗? – Liuuil

+0

这可能是一样的。根据管理状态,你可以先看看这个文档:https://facebook.github.io/react/docs/state-and-lifecycle.html和这个(第一部分)https:// facebook .github.io /反应/文档/提升状态-up.html。如果你遇到新问题,你可以单独提问。 –

相关问题