React,setState 与异步更新程序参数?

nin*_*ino 5 asynchronous setstate typescript reactjs

有人知道在 React 中是否可以使用异步更新程序参数setState(updater)吗?我有以下不起作用的代码(f被调用但 UI 未更新):

this.setState( async (prevState) => ({
   foo: await f(prevState.someData)
}))      
Run Code Online (Sandbox Code Playgroud)

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

this.setState( async (prevState) => {
   this.setState({
      foo: await f(prevState.someData)
   })      
})
Run Code Online (Sandbox Code Playgroud)

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

Mμ.*_*Mμ. 0

我假设您正在对方法调用 setState。那么为什么不在方法上添加 async 呢?

async handleSomething () {
  //.. some logic

  this.setState(prevState => ({
    foo: await f(prevState.someData)
  }))
}
Run Code Online (Sandbox Code Playgroud)