[转]React hooks useEffect中如何使用异步函数(即如何使用async/await)
1. useEffect 的回调参数返回的是一个清除副作用的 clean-up 函数。因此无法返回 Promise,更无法使用 async/await
2.如何让useEffect支持async/await
2.1、方法一(推荐):useEffect中异步函数采用IIFE写法( Immediately Invoked Function Expression即立即调用的函数式表达式)
1 2 3 4 5 6 7 8 9 | const MyFunctionnalComponent: React.FC = props => { useEffect(() => { // Using an IIFE (async function anyNameFunction() { await loadContent(); })(); }, []); return <div></div>; }; |
2.2方法二:此时可以选择再包装一层 async 函数,置于 useEffect 的回调函数中,变相使用 async/await
1 2 3 4 5 6 7 8 9 | const fetchMyAPI =async()=> { let response = await fetch( 'api/data' ) response = await res.json() dataSet(response) } useEffect(() => { fetchMyAPI(); }, []); |
2.3方法三:在内部创建一个异步函数,等待getData(1)结果,然后调用setData():
1 2 3 4 5 6 7 | useEffect(() => { const fetchMyAPI = async () =>{ const data = await getData(1); setData(data) } fetchMyAPI(); }, []); |
摘自:https://blog.csdn.net/zhongzk69/article/details/116266085
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2016-12-09 ESLint 代码检查规范