@cajo

Почему componentDidUpdate вызывает бесконечный цикл?

У меня есть Link на страницу, на этой странице я вызываю в componentDidMount action который берет данные с сервера, когда я перехожу на эту страницу данные не берутся а выскакивает ошибка 403, после обновления страницы всё нормально, чтобы это обойти я сделал
componentDidMount() {
        this.props.loadData();
    }

    componentDidUpdate(prevProps) {
        if (prevProps.data !== this.props.data) {
            this.props.loadData();
        }
    }

Но теперь получается бесконечный цикл
  • Вопрос задан
  • 781 просмотр
Решения вопроса 1
Если я правильно вас понял, то prevProps.data и this.props.data - это объекты.
Могу предположить каждый раз это ссылки на разные объекты, и вам нужно сравнивать конкретные свойства объекта.
Можно воспользоваться lodash и сделать так:
componentDidUpdate(prevProps) {
    if (!_.isEqual(prevProps.data, this.props.data)) {
        this.props.loadData();
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы