加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 09:30:52 所属栏目:百科 来源:网络整理
导读:有人知道在React中是否可以在setState(updater)中使用async updater参数?我有以下代码无效(f被调用,但UI未更新): this.setState( async (prevState) = ({ foo: await f(prevState.someData)})) 显然async参数是个问题.我不得不使用这个丑陋的替代版本: th
有人知道在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
  }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读