You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React报错:Effect回调需同步防竞态,代码格式存疑求助

解决 "Effect callbacks are synchronous to prevent race conditions" 错误

这个错误的核心原因是:你直接把useEffect的回调写成了async函数——React要求useEffect的回调要么返回一个清理函数,要么什么都不返回,而async函数会默认返回Promise,这就违反了这个规则。

给你两种修复方案:

方案1:在useEffect内部定义async函数并调用

useEffect(() => {
  const fetchTasks = async () => {
    const response = await axios.get('http://localhost:5000/get-tasks')
    const dataObject = response.data
    
    const arrayOfKeys = Object.keys(dataObject)
    const arrayOfData = Object.keys(dataObject).map((key) => dataObject[key])

    console.log(arrayOfKeys)
    console.log(arrayOfData)
  }

  fetchTasks()
}, [])

方案2:使用立即执行的async函数

useEffect(() => {
  (async () => {
    const response = await axios.get('http://localhost:5000/get-tasks')
    const dataObject = response.data
    
    const arrayOfKeys = Object.keys(dataObject)
    const arrayOfData = Object.keys(dataObject).map((key) => dataObject[key])

    console.log(arrayOfKeys)
    console.log(arrayOfData)
  })()
}, [])

额外提醒:如果后续需要处理请求取消或清理逻辑,建议搭配AbortController使用,避免出现内存泄漏问题。

内容的提问来源于stack exchange,提问作者Mike_Alpha_Romeo_Charlie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 03:52:00