我正在使用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
答案 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}