doubleyong
管理员
管理员
  • 最后登录2025-02-06
  • 发帖数1196
  • 最爱沙发
  • 喜欢达人
  • 原创写手
  • 社区居民
  • 忠实会员
阅读:2312回复:0

[前端]useEffect报错:useEffect must not return anything besides a function, which is used for clean-up.

楼主#
更多 发布于:2022-11-14 11:45
如下代码:
useEffect(async() => {
      await test();
   }, []);
   function test (){
       return new Promise((resove,reject)=>{
           setTimeout(function(){
               setFormData({
                   remember: true,
                   username:"doubleyong",
                   password:"123"
                 })
                 console.log("upload state")
                 resove();
           },2000)
       });
   }




报错:
Warning: useEffect must not return anything besides a function, which is used for clean-up.


It looks like you wrote useEffect(async () => ...) or returned a Promise. Instead, write the async function inside your effect and call it immediately:






原因:
提示不能直接在useEffect中使用async,


报错信息中也给出了解决方式,就是把async放在useEffect里面,在立即调用


修改如下,重新运行这个警告就消失了。




解决方案:


useEffect(()=>{
       const temp =  async() => {
            await test();
         }
         temp()
    }, []);
知识需要管理,知识需要分享
游客


返回顶部

公众号

公众号