按规范编写useEffect仍触发异步返回警告,代码是否存在问题?
问题分析与解决
你的代码写法本身符合React规范,按道理不会触发这个警告。但既然收到提示,大概率是以下某一处细节出错了:
误将useEffect的回调声明为async函数
如果你实际代码里写成了这样,async函数会默认返回Promise,违反了useEffect只能返回清理函数或undefined的要求:useEffect(async () => { // 这里的async是问题根源 async function fetchData() { // ...你的逻辑 } fetchData() }, [user])不小心返回了异步函数的调用结果
如果在useEffect里return了fetchData(),而async函数调用会返回Promise,同样会触发警告:useEffect(() => { async function fetchData() { // ...你的逻辑 } return fetchData() // 这里return Promise导致警告 }, [user])编辑器或缓存问题
有时候编辑器的ESLint缓存会误报,尝试重启编辑器或者清除项目的ESLint缓存,再重新检查代码。
如果以上情况都排除,那可以确认是工具的误报,你的代码逻辑本身没有问题。
内容的提问来源于stack exchange,提问作者Bruno Nobre
相关产品推荐
相关产品推荐

