我想在我的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/

10-11 14:13