优秀的编程知识分享平台

网站首页 > 技术文章 正文

React - 如何在useEffect中使用async函数

nanyue 2024-08-04 16:53:14 技术文章 11 ℃

在 React 中,我们都必须使用 useEffect Hook,它在执行 DOM 更新后运行,并帮助我们在渲染后执行一些操作。在探索在 useEffect 中进行异步调用的不同方法之前,让我们讨论一下它背后的问题。

不能在useEffect中直接使用async,为什么?

上面这段代码会直接报错,因为 async 函数返回 promise,而 useEffect 不允许回调函数返回 promise。 实际上它不应该返回任何内容。

如何解决这个问题?

  • 在useEffect内部定义async函数
  • 使用useCallback在外部定义,然后进行调用。

在这种情况下,我们需要将我们的异步函数包装在 useCallback 中以将其映射到useEffect依赖数组。

注意 - 如果我们不使用 useCallback Hook包装函数,它将在每次更新时重新渲染,这将导致再次触发 useEffect 钩子。

以上介绍了在useEffect中使用async函数的两种方法。其实,react中有第三方库,可以更好的解决async的问题,比如react-use中的useAsync,用起来也特别方便。大家有兴趣可以尝试一下。

Tags:

最近发表
标签列表