При обновлении состояния в React получаю ошибку: Error: Maximum update depth exceeded
Почему у меня уходит в бесконечный цикл? Что я делаю не так? Известны поля объекта, они не изменяются и идет сравнение именно по ним.
componentDidUpdate(prevProps) {
const { obj, arrHistory } = this.state;
if (!this.isEquals(obj, prevProps.obj)) {
let newArr = arrHistory;
newArr.push(obj);
this.setState({
arrHistory: newArr,
obj: obj
})
}
}
isEquals = (obj1, obj2) => {
return (obj1.name === obj2.name ||
obj1.arr.join() === obj2.arr.join() ||
obj1.x === obj2.x ||
obj1.y === obj2.y);
}
Ответы (1 шт):
Автор решения: Kate Fadeeva
→ Ссылка
Мне помогло изменение в функции isEquals || (или) на && (и) и всё заработало как надо!