如果我的道具出现错误,我想提醒一次并重定向到某个地方,我在我的组件中做了这个
componentWillReceiveProps(nextProps) {
if(nextProps.error !== '' && nextProps.error) {
alert(nextProps.error)
this.props.history.replace('/dashboard')
}
}
这项工作当我访问路线但如果我从登录导航时多次触发问题,我不确定问题是什么。
答案 0 :(得分:0)
在安装的组件接收新道具之前调用componentWillReceiveProps()。如果您需要更新状态以响应prop更改(例如,重置它),您可以比较this.props和nextProps并使用此方法中的this.setState()执行状态转换。
如果没有更多的应用程序代码可供查看,很难知道为什么多次调用您的方法。虽然我们知道某些东西导致新的道具多次传递给你的组件,但没有看任何东西。但是,为了解决这个问题,您可以在组件上设置一些状态以忽略运行
alert(nextProps.error)
this.props.history.replace('/dashboard')
以后你不想这样做。