почему componentDidUpdate запускается несколько раз - PullRequest
0 голосов
/ 15 ноября 2018

Я действительно не понимаю реактивный жизненный цикл. Я запустил console.log в componentDidUpdate () и увидел, что он запускался несколько раз Консоль показала, что componentDidUpdate запускался 3 раза

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

Может быть, я могу дать вам дополнительный пример, когда ваша проблема возникает, так как я не вижу ваш код.

componentDidUpdate(prevProps, prevState) {
        const { something } = this.props;
        if (prevProps.something !== something) this.apiCall();
        console.log('something')
}

при изменении состояния или реквизита вызывается componentDidUpdate, и функция apiCall отправляет http-запрос через fetch или axios и дважды изменяет состояние с помощью функции setState.

всякий раз, когда state изменяется, вызывается новый render() и следует componentDidUpdate.

но состояние

if (prevProps.something !== something) this.apiCall();

может больше не удовлетворяться, просто ведение журнала консоли вместо вызова apiCall функции, которая запускает бесконечный цикл.

надеюсь, это поможет.

0 голосов
/ 24 ноября 2018

componentDidUpdate() вызывается сразу после того, как происходит обновление.

Ваша проблема может быть разрешена из-за изменения состояния, получения реквизита или повторной попытки родителей.

, если вы новичок вНа самом деле, я рекомендую вам прочитать следующую статью: Пост-рендеринг с componentDidUpdate ()

...