Добрый день. Подскажите пожалуйста, как проходит сравнение объектов в mapStateToProps для определения того, нужно ли перерендерить компонент. Интересует вот такой случай. Есть в сторе стейт:
const state = {
first: {
second: {
data: {
a: 2, b: 3
}
}
}
}
В mapStateToProps я получаю доступ к data и надеюсь, что когда у меня поменяется a или b то компонента перерендерится.
{
data: state.first.second.data
}
Понимаю, что будет сравниваться data, и при этом по ссылке. Но будут ли сравниваться first и second? Если нет, то зачем в reducer тогда рекомендуется делать копии на всех уровнях вложенности? Например, я хочу изменить a и мне нужно сначала сделать копию ...first, потом копию ...second и уже потом data: {...state.data, a}. Если у меня сравниваются между собой только ссылки на data, то я могу не делать копи на first и second? Или же сравнение происходит по-другому?