цепочка setState несколько раз

#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 .