将 this.state 传递给 react-router 1.x / React, Flux 中的子级
Posted
技术标签:
【中文标题】将 this.state 传递给 react-router 1.x / React, Flux 中的子级【英文标题】:Pass this.state to children in react-router 1.x / React, Flux 【发布时间】:2015-10-24 09:25:55 【问题描述】:我正在使用 react-router 对我命名为 App 的***路由执行身份验证。我的应用正在使用以下
<div className="app-wrapper">
<NavbarC currentUser=this.state.currentUser />
this.props.children
</div>
我希望能够将this.state.currentUser
传递给this.prop.children
。
这可能吗,还是我应该使用我创建的 UserStore 创建一个新状态?
【问题讨论】:
【参考方案1】:由于我使用的是通量,因此处理它的正确方法似乎是从存储中为每条路线提取数据。我的路线如下所示:
let getCurrentUserFromStore = () =>
return currentUser: UserStore.getCurrentUser() ;
export default class Landing extends React.Component
constructor(props)
super(props);
this.state = getCurrentUserFromStore();
this.onStoreChange = this.onStoreChange.bind(this);
onStoreChange()
this.setState(getCurrentUserFromStore());
componentDidMount()
UserStore.addChangeListener(this.onStoreChange);
componentWillUnmount()
UserStore.removeChangeListener(this.onStoreChange);
render()
if ($.isEmptyObject(this.state.currentUser))
return <LoginPage />
else
return <DashboardPage currentUser=this.state.currentUser />
【讨论】:
以上是关于将 this.state 传递给 react-router 1.x / React, Flux 中的子级的主要内容,如果未能解决你的问题,请参考以下文章
将 this.state 传递给 react-router 1.x / React, Flux 中的子级
...this.state 和 this.state 之间的区别