我正在使用 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/