javascript - 避免 React setState() 回调循环

标签 javascript reactjs

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

还有其他好的方法可以实现吗?

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

最佳答案

一次设置它们是很有可能的,就像这样:

this.setState({
    item_1: true,
    item_2: false,
    item_3: 'Foo'
});

如果你仍然想在状态改变后进行某些改变,你仍然可以使用回调。像 setState({obj},callback);

关于javascript - 避免 React setState() 回调循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44559495/

相关文章:

javascript - 为什么 Dreamweaver 显示此脚本行的语法错误?

javascript - 对象数组元素在推送时被修改

ReactJS 组合建议

javascript - 如何判断浏览器运行时运行的 React 版本?

reactjs - 使用 Bootstrap 的模态不会更新内容

html - ReactMapGL 上的 onHover 效果无法正确缩放

javascript - carouFredSel 响应高度

javascript - History.replaceState(...) 在历史记录中添加一个新条目

javascript - React 中的 constructor/super/bind 的用法是什么?

css - antd 表单项上带有工具提示的图标