Я ищу лучший подход, в котором я могу сравнивать свои текущие значения в состоянии / реквизитах с новыми значениями в состоянии / реквизитах при использовании shouldComponentUpdate
shouldComponentUpdate(nextProps, nextState)
Давайтерассмотрим пример, если у меня есть следующие данные в моем состоянии
[
{
title: "Hello",
id: 1,
isUpdated: false,
property: [
{
name: "property 1",
area: "area 1",
inspection: [
{
isNew: true,
isSold: false,
isLicenseExpired: false
}
]
},
{
name: "property 2",
area: "area 2",
inspection: [
{
isNew: false,
isSold: false,
isLicenseExpired: true
}
]
}
]
},
{
title: "World",
id: 2,
isUpdated: false,
property: [
{
name: "property 1",
area: "area 1",
inspection: [
{
isNew: false,
isSold: false,
isLicenseExpired: true
}
]
},
{
name: "property 2",
area: "area 2",
inspection: [
{
isNew: false,
isSold: false,
isLicenseExpired: true
}
]
}
]
}
]
Теперь, когда я снова обновляю состояние с теми же данными, я не могу сравнить его вручную с предыдущими и текущими реквизитами / состоянием, потому что если я сравниваю их как nextProps.data !== this.props.data
это даст мой неверный результат, так как это только поверхностное сравнение.
Я также знаю, что могу использовать библиотеку lodash для глубокого сравнения значений, но я хотел знать лучшееспособ сравнения вложенного массива объекта в shouldComponentUpdate()
Вот живой пример - https://codesandbox.io/s/crazy-perlman-f3e1k?fontsize=14 На случай, если вам интересно увидеть мой код и проблему.
Спасибоза ваше время.