ComponentDidUpdate不调用相同的组件

问题描述 投票:0回答:1

我有一个组件,它有一个状态对象,如;

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的值吗?或者还有其他方法来处理它吗?

react-native redux react-navigation
1个回答
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})

© www.soinside.com 2019 - 2024. All rights reserved.