ComponentDidUpdate не вызывает для того же компонента - PullRequest
0 голосов
/ 01 сентября 2018

У меня есть компонент, и у него есть объект состояния, как;

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 одинаков. Должен ли я сбросить значение actionResponse на goBack ()? Или есть другой способ справиться с этим?

1 Ответ

0 голосов
/ 01 сентября 2018

В 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})

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...