Задать вопрос
@PHPjedi

Из-за чего появляется ошибка при setState?

Добрый вечер. Прошу вас мне помочь разобраться с ошибкой.

Ошибка возникает когда я вешаю на onClick setState.

Вот ссылка на компонент: https://pastebin.com/AeBqKL66

Ошибка: Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.

Спасибо!
  • Вопрос задан
  • 107 просмотров
Подписаться 1 Простой Комментировать
Решение пользователя abberati К ответам на вопрос (2)
@abberati
frontend-разработчик
Кроме проблемы, с которой вы уже столкнулись, в вашем коде есть ещё одна проблема: не следует обращаться к текущему стейту внутри функции setState, т.к. эта фукнция асинхронная, а значит нет гарантии, что this.state будет тем же самым на момент применения стейта. Звучит сложно, но оно и на самом деле не очень просто устроено. Вот простейший пример в песочнице:
https://jsfiddle.net/n5u2wwjg/147060/

Обратите внимание, что "-2" работает так, как ожидается. А "+2" - нет.
Ответ написан