小编sid*_*nda的帖子

如何使用反应 useState 钩子防止竞争条件

我有一个组件,它使用钩子状态 (useState) api 来跟踪数据。

对象看起来像这样

const [data,setData] =  React.useState({})
Run Code Online (Sandbox Code Playgroud)

现在我有多个按钮可以发出 API 请求并使用新密钥设置数据

setAPIData = (key,APIdata) => {

    const dup = {
      ...data,
      [key]:APIdata
    }
    setData(dup)
}

Run Code Online (Sandbox Code Playgroud)

现在如果我同时发出多个请求,它会导致竞争条件,因为在 react 中设置状态是异步的,并且我得到了以前的值。

在基于类的组件中,我们可以通过一个 updater 函数来获取更新的值,这个基于钩子的组件是如何做的。

javascript reactjs

14
推荐指数
1
解决办法
3754
查看次数

标签 统计

javascript ×1

reactjs ×1