reactjs – 使用异步更新程序参数React,setState?

有人知道在React中是否可以在setState(updater)中使用async updater参数?我有以下代码无效(f被调用,但UI未更新):

this.setState( async (prevState) => ({
   foo: await f(prevState.someData)
}))

显然async参数是个问题.我不得不使用这个丑陋的替代版本:

this.setState( async (prevState) => {
   this.setState({
      foo: await f(prevState.someData)
   })      
})

有没有更好的方法来编写上面的代码?

解决方法

然后你可以setState两次.

this.setState((prevState) => {
    f(prevState.someData);        

    // Don't change state now.
    return {}; 
})

async f(someData) {
  this.setState(prevState) {
    // Do something
  }
}

相关文章

react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom...
react 本身提供了克隆组件的方法,但是平时开发中可能很少使...
mobx 是一个简单可扩展的状态管理库,中文官网链接。小编在接...
我们在平常的开发中不可避免的会有很多列表渲染逻辑,在 pc ...