在反应生命周期中管理反应路线

时间:2019-01-14 22:57:36

标签: javascript reactjs redux

我正在使用React-redux,并通过执行类似的操作来调度我的操作

 componentWillMount() {
    //Dispatching redux action
   this.props.googleProfile(test_url_base)
  }

现在,在接收数据之前,我们可能已经传递了componentDidMount,因此,如果我要重新路由,则必须使用render()来重新路由

渲染器中考虑此内容。

 if (this.props.googleProfileError === true) this.props.history.push("/login")

注意:this.props.googleProfileError 来自mapStateToProps

因此,在很多情况下,我只需要检查一次即可。 (这也会引发警告,以保持渲染纯净)

所以,我很想知道在反应中我们可以做些什么,以便我可以调度,并且可以在相同的生命周期中处理该操作的有效负载/结果。

此外,您作为开发人员如何在反应中管理路由。也就是说,假设我有组件localhost:3000/home,如果用户到达地址并且没有错误,则显示该页面,如果存在401错误,则将其重定向到登录页面。

你们也使用渲染吗?或您到底是怎么做到的? P

2 个答案:

答案 0 :(得分:0)

如果您不使用getDerivedStateFromProps方法,我认为您应该使用componentWillReceiveProps。

componentWillReceiveProps(nextProps) {
  if (nextProps.googleProfileError === true) this.props.history.push("/login")
}

但是在React16中,您应该使用getDerivedStateFromProps:https://reactjs.org/docs/react-component.html#static-getderivedstatefromprops

答案 1 :(得分:0)

其中一种方法是在render内部:

const {googleProfileError} = this.props;

{googleProfileError? <Redirect  to="/login"/>:null}