Если бы вы деструктурировали объект из this.props
, значением в новой переменной был бы указатель на этот объект, строка. Это та же самая примитивная строка, которая будет отправлена, если вы передадите this.props.complexObject
непосредственно в качестве реквизита. Поэтому, если ссылка на объект одинакова, то поверхностное сравнение PureComponent будет возвращать true.
Это может привести к проблемам, если вы измените сложный объект, так как указатель останется прежним, а PureComponent не обновится. Вот почему при изменении какого-либо значения в вашем сложном объекте вы хотите сделать полный клон и передать его. Это будет новый указатель, который будет захвачен мелким сравнением и обновлением PureComponent.