#javascript #reactjs
#javascript #reactjs
Вопрос:
Привет, специалисты React,
Я работаю над приложением, и в итоге я связал setState в цепочку 3 раза, как это:
this.setState({}, () => {
// first call back
this.setState({}, () => {
// second call back
this.setState();
})
})
Теперь логика состояния работает нормально, я столкнулся с неожиданным необъяснимым поведением, например: входные данные пользовательского интерфейса не меняются, хотя состояние меняется. и некоторые другие вещи без причины, почему это происходит.
вопрос в том, ожидали ли вы проблем при использовании этой цепочки?? почему это плохо делать?? считаете ли вы, что эта цепочка может быть причиной проблемы??
Комментарии:
1. Почему вам нужно создавать цепочку, а не просто обновлять за один раз, помещая все новые свойства в один
setState
вызов? Я не могу сказать, является ли цепочка причиной упомянутых вами проблем (вы не даете достаточно подробностей, чтобы даже догадаться о причине), но это, безусловно, кажется очень неэффективным.2. Можете ли вы предоставить минимальный воспроизводимый пример неожиданного поведения, с которым вы сталкиваетесь? Честно говоря, я не могу понять, почему у вас есть такие вложенные вызовы
this.setState
. Если новое состояние зависит от предыдущего состояния, используйте функциональную формуthis.setState
вместо вложенных вызововthis.setState
.