我是reactjs的新手 - 如果我在子页面上遇到错误页面 - 因为网址错误 - 我正在寻找一种方法将页面重定向到另一个页面。
所以de / dienstleistungen / isdfisf - 拼错了 重定向到de / dienstleistungen
我试过写一个函数来处理这个但没有运气
if (!lang.serviceIntro[0][service]) {
console.log('undefined', this)
this.context.router.push('/de/dienstleistungen')
}
上下文类型失败:提供给router
的{{1}}类型的上下文object
无效,预期为PlainHeader
。
答案 0 :(得分:0)
class App extends Component {
componentDidMount() {
let token = ... // achieve token
if (!token) {
this.props.history.push('/login');
}
}
render() {
....
}
}
主页检查中的代码如果未经过身份验证,将以编程方式重定向到登录页面。道具 this.props.history 将通过反应路由器传递。 查看上面的文档以获取更多信息。希望有所帮助
答案 1 :(得分:0)
正如错误消息所示,您应该将contextTypes.router
声明为对象,路由器是旧版本中的函数
static contextTypes = {
router: PropTypes.object.isRequired
}