我想在我的reactjs应用程序中使登录用户的数据成为全局数据。
我的应用程式码:
class App extends Component {
getChildContext = () => {
return {
user: {
name: 'username',
email: '[email protected]'
}
}
}
render() {
return (
<Router>
<div>
<Route exact path='/game' component={Game} />
<Route exact path='/singup' component={Singup} />
</div>
</Router>
);
}
App.childContextTypes = {
user: PropTypes.object
};
在游戏组件中,我尝试通过this.context.user进行使用,但未定义。
我可以将上下文传播到路由器组件吗?
最佳答案
通过将childContextTypes和getChildContext添加到上下文提供程序,React会自动向下传递信息,并且子树中的任何组件都可以通过定义contextTypes来访问它。
如果未定义contextTypes,则context将为空对象。
确保已在contextTypes
组件上定义了Game
Game.contextTypes = {
user: PropTypes.object
};
https://reactjs.org/docs/context.html
关于javascript - 如何将上下文传播到路由器组件。 React.js,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47496330/