我尝试在使用redux进行身份验证失败时显示错误警报。我在ComponentDidUpdate中这样做
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 != '') {}
,他们给出了运行时错误。
我知道有更好的方法可以做到这一点,但我不能只想出来。请帮忙。感谢。
主要问题是在第一次失败后,如果第二次或后续失败返回相同的失败消息,反应不知道我的错误道具已经改变,它假定它们是相同的。但即使是相同的错误,我也希望显示错误。
例如,第一次尝试错误=“身份验证失败”,第二次尝试错误=“身份验证失败”。
答案 0 :(得分:0)
试试此代码
shouldComponentUpdate(nextProps){
if(nextProps.Error && nextProps.Error !== ''){
this.setState({loading: false})
this.dropdown.alertWithType('error', 'Error', nextProps.Error)
}
}