react.js在函数内部重定向

时间:2019-08-31 03:01:16

标签: reactjs react-router react-router-dom

我正在尝试实施条件重定向。

所以在函数内部我使用了这个:

if(request.responseText==="true"){
     window.location.href = '/home';
}
...

但是当我使用react.js时,我正在尝试从Redirect实现react-router-dom

所以我尝试了以下代码:

if(request.responseText==="true"){
      <Router>
          <Redirect to={"/home"}/>
      </Router>
} 
...

但是现在甚至还没有编译,它给了我错误:

期望了一个赋值或函数调用,而是看到了一个表达式no-unused-expressions

3 个答案:

答案 0 :(得分:1)

我认为您不需要用Router包裹它,您可以拥有它,

if(request.responseText==="true"){
   return <Redirect to="/home" />
} 

答案 1 :(得分:1)

您的组件应该包装在 withRouter 中,请参见React Router - withRouter,然后您的组件现在在道具中具有历史记录。在您的示例中,如下所示使用它:

if(request.responseText==="true"){
    this.props.history.push('/home')
}

希望这会有所帮助!编码愉快! :)

答案 2 :(得分:-1)

根据文档应为

 <Redirect to="/dashboard"/>

请注意,花括号被删除。

https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/api/Redirect.md