foo: {
bar: 123,
var: 321
}
}
Когда я произвожу в одной функции последовательно
this.setState({
foo: {
...this.state.foo, ['var']: 1234
}
})
this.setState({
foo: {
...this.state.foo, ['bar']: 4321
}
})
Два изменения стейта, которые включают в себя перезаписывание остальных полей, то происходит страшное. А именно:
Я получаю
foo.var = 321
foo.bar = 4321
А хотелось бы получить
foo.var = 1234
foo.bar = 4321
Как это провернуть?
this.setState( prevState => { ...prevState, тут вернуть нужное}
сет стейт не синхронный, тут нет последовательного
1. setState асинхронный 2. зачем вам два раза его вызывать? В чём проблема засетить всё за раз?
Обсуждают сегодня