При обновлении состояния в 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 || (или) на && (и) и всё заработало как надо!

→ Ссылка