避免React setState()回调循环

dem*_*ist 1 javascript reactjs

我试图同时设置多个状态属性,但由于我setState()异步的,我将使用回调,但作为更多的属性,我必须一次编辑这个代码变得越来越难看!

有没有其他好方法来实现这一目标?

this.setState(
  {
    item_1: true
  },
  (e => {
    this.setState(
      {
        item_2: false
      },
      (e => {
        this.setState(
          {
            item_3: 'Hello World'
          }
        )
      })
    )
  })
)
Run Code Online (Sandbox Code Playgroud)

Hor*_*man 6

很可能一次性设置它们,如下所示:

this.setState({
    item_1: true,
    item_2: false,
    item_3: 'Foo'
});
Run Code Online (Sandbox Code Playgroud)

如果您仍希望在状态更改后进行某些更改,则仍可以使用此回调.喜欢setState({obj},callback);