我正在使用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?
}
}
答案 0 :(得分:1)
似乎是类属性初始化中的语法错误。
您有两种选择:
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
还要确保在课程函数中使用parens!
testFunction() {
// do stuff
}