this.context 使用react-router时不包含router
this.context does not contain router when using react-router
我正在使用 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 属性 初始化中的语法错误。
您有两个选择:
class TestComponent extends Component {
static contextTypes = {
router: PropTypes.object.isRequired
}; // required semi-colon!
...
}
但是 class 属性仍然是测试版功能,因此经常会看到:
class TestComponent extends Component {
...
}
TestComponent.contextTypes = {
router: PropTypes.object.isRequired
} // semi-colon not required
还要确保在 class 函数中使用括号!
testFunction() {
// do stuff
}
我正在使用 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 属性 初始化中的语法错误。
您有两个选择:
class TestComponent extends Component {
static contextTypes = {
router: PropTypes.object.isRequired
}; // required semi-colon!
...
}
但是 class 属性仍然是测试版功能,因此经常会看到:
class TestComponent extends Component {
...
}
TestComponent.contextTypes = {
router: PropTypes.object.isRequired
} // semi-colon not required
还要确保在 class 函数中使用括号!
testFunction() {
// do stuff
}