javascript - this.context 在使用 react-router 时不包含 router

标签 javascript reactjs react-router redux

我正在使用 React、Redux、react-router、react-router-redux 的组合。我有一个组件需要将 URL 推送到浏览器的历史记录。在最新版本的 react-router (2.0.0-rc5) 中,我有一个具有以下属性的组件:

class TestComponent extends Component {
  contextTypes: {
    router: React.PropTypes.object.isRequired
  };

  render() {
    console.log(this.context) // empty object, where is router?
  }
}

最佳答案

似乎是类属性初始化中的语法错误。

你有两个选择:

class TestComponent extends Component {
  static contextTypes = {
    router: PropTypes.object.isRequired
  }; // required semi-colon!
  ...
}

但是类属性仍然是测试版功能,因此经常会看到:

class TestComponent extends Component {
  ...
}

TestComponent.contextTypes = {
  router: PropTypes.object.isRequired
} // semi-colon not required

还要确保在类函数中使用括号!

testFunction() {
  // do stuff
}

关于javascript - this.context 在使用 react-router 时不包含 router,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35090577/

相关文章:

javascript - 为什么我的组件使用 React.memo 重新渲染

javascript - MERN:类型错误:未定义不是对象(评估 'this.props.params.id' )

reactjs - React Router 开关不会为不同的路由安装相同的组件

javascript - 当使用 react-redux v5 设置 React v15.5 时,路由不导航

javascript - 将值从一个 html 传递到另一个页面

javascript - Angular 使用 Promise 并在 Promise 中使用泛型

javascript - AngularJS 中的基本函数

reactjs - Electron vs Web Apps(特别是使用 React)

javascript - 如何在一条语句中将相同的值添加到两个变量?

reactjs - 尝试将 React JS new Date() 输出转换为 date-fns 格式ISO