我试图在使用 redux 身份验证失败时显示错误警报。我在组件更新中这样做是这样
if (prevProps.Error !== this.props.Error) {
this.setState({loading: false})
this.dropdown.alertWithType('error', 'Error', this.props.Error)
}
但问题是,如果在第一次尝试后出现错误,它不会显示。它不起作用,因为this.props.Error
没有改变,即prevProps.Error === this.props.Error
.
我已经尝试过if(this.props.Error) {}
,if(this.props.Error != '') {}
,它们给出了运行时错误。
我知道有更好的方法可以做到这一点,但我不能弄清楚。请帮忙。谢谢。
主要问题是在第一次失败之后,如果第二次或随后的失败返回相同的失败消息 react 不知道我的错误 prop 已更改,它假设它们是相同的。但是我想显示错误,即使它是相同的错误。
例如,第一次尝试错误 ="身份验证失败",第二次尝试错误 ="身份验证失败"。
试试这段代码
shouldComponentUpdate(nextProps){
if(nextProps.Error && nextProps.Error !== ''){
this.setState({loading: false})
this.dropdown.alertWithType('error', 'Error', nextProps.Error)
}
}