我有一个组件,它有一个状态对象,如;
this.state = {
actionResponse: null,
};
我检查了actionResponse的值
componentDidUpdate(prevProps){
if (this.props.detailState.actionResponse !== prevProps.detailState.actionResponse) {
this.showToast(this.props.detailState.actionResponse,'bottom','OK', 'danger');
}
}
我第一次使用该组件,它调用showToast方法并返回。第二次它不会调用showToast,因为actionResponse是相同的。我应该在goBack()上重置actionResponse的值吗?或者还有其他方法来处理它吗?
在componentDidUpdate
中,你应该在执行动作(显示吐司)后将actionResponse
设置回默认值null
。
componentDidUpdate(prevProps){
if (this.props.detailState.actionResponse !== prevProps.detailState.actionResponse) {
this.showToast(this.props.detailState.actionResponse,'bottom','OK', 'danger');
this.props.resetActionResponse();
}
}
resetActionResponse
看起来像:
resetActionResponse = () => this.setState({actionResponse: null})