Возникла проблема, из-за которой деконструкция состояния компонента препятствует его обновлению в setState:
state = {
value: 'test',
values: ['a', 'b', 'c'],
};
...
const { value, values } = this.state;
this.setState(
{
values: [...values, value],
},
() => {
console.log(values);
// this logs ["a", "b", "c"] rather than ["a", "b", "c", "test"]
}
);
Ожидаемый вывод значений должен включать новое значение, но при этом регистрируются только старые значения. Использование this.state работает, поэтому просто интересно, почему деконструкция объекта состояния не обновляется должным образом?
Вы можете перейти в эту Codesandbox и попробовать сами, нажав на кнопку и проверьте журналы консоли.
Любая помощь по этому поводу будет очень признательна!
this.state.values
. values по-прежнему относятся к локальной переменной, которая относится к старомуthis.state.values
- person Mukesh Soni   schedule 14.08.2019