У меня есть компонент, который всегда получает одни и те же реквизиты. Когда я сравниваю их в жизненном цикле shouldComponentUpdate()
, он возвращает false
shouldComponentUpdate(nextProps,nextState){
if(this.props === nextProps){return false;} //returns false
else return true;
}
Однако, если я сравниваю текущее и предыдущее состояние с одинаковым значением, они работают нормально и возвращают true
shouldComponentUpdate(nextProps,nextState){
if(this.state === nextState){return false;}
else return true; //return true
}
И состояние, и реквизиты являются объектами (ссылочный тип), но почему они ведут себя по-разному?
shouldComponentUpdate()
для глубокого объектаprop or State
и сопоставлять что-то вродеthis.props.<some_object_key> === nextProps.<some_object_key>
без простого сравнения ссылок(this.props=== nextProps)
(из комментария @DavinTryon) - person Anandhu   schedule 29.01.2019