ComponentDidUpdate不调用相同的组件

时间:2018-09-01 16:11:11

标签: react-native redux react-navigation

我有一个组件,并且有一个类似的状态对象;

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的值吗?还是有其他方法可以处理?

1 个答案:

答案 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})