我有一个组件,并且有一个类似的状态对象;
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的值吗?还是有其他方法可以处理?
答案 0 :(得分:0)
在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})