У меня есть функциональный компонент React, обернутый React.memo следующим образом
const SpeakerDetail = React.memo(
({ record, prop1 }) => {...
Когда я вызываю этот компонент, я делаю это так
const record = {prop1: 'abcd', prop2: 'efgh', prop3: 'ijkl'};
const Speakers = () => {
...
return(
<SpeakerDetail record={record} prop1={record.prop1}></SpeakerDetail>
)...
Предполагая, что мой prop1 действительно меняется между рендерами, приведенный выше код работает так, как ожидалось, что означает, что React.memo создает новую копию и не использует ее кешированную версию.
Проблема в том, что если я явно не передаю prop1 в качестве отдельного параметра, версия кеша React.memo не распознает изменение свойства записи.
Есть ли способ не передавать это избыточное свойство, чтобы React.memo пересчитывал?
Это похоже на проблему с глубоким / неглубоким копированием, но я не уверен.