首页 > 其他分享 >react中useEffect使用async await报错

react中useEffect使用async await报错

时间:2023-09-14 16:11:43浏览次数:39  
标签:... myFunc 函数 await react 报错 async useEffect

错误代码一:

useEffect(async()=>{ 
	await myFunc();
},[])

const myFunc = async()=>{...};

错误代码二:

useEffect(()=>myFunc(),[])
const myFunc = async()=>{...};

以上写法在打开页面时正常显示,但是当从该页面返回上一页时报错,如下:

原因

要知道,useEffect 钩子函数的一个特性是清理功能,即return函数。如果你从 useEffect 钩子函数返回任何东西,它必须是一个清理函数,此函数将在组件卸载时运行。相当于类组件中的 componentWillUnmount 生命周期方法。
在 JavaScript 中, async...await 会让程序在等待异步任务完成后才会继续执行。 异步函数也总是返回一个 Promise;如果函数还没有返回,则返回值会自动包装在 Promise 中。

正确写法

useEffect(()=>{ 
	myFunc();
},[])
const myFunc = async()=>{...};

标签:...,myFunc,函数,await,react,报错,async,useEffect
From: https://www.cnblogs.com/ZerlinM/p/17702771.html

相关文章

  • python的flask框架部署网页过程报错及解决方案
    python安装好flask框架之后,创建一个flask的项目,运行发生以下报错UnicodeDecodeError:'utf-8'codeccan'tdecodebyte0xa1inposition4:invalidstartbyte原因是读取flask库源码的时候系统默认未使用‘utf-8’格式win10电脑->控制面板->区域->管理->更改系统区域设置......
  • Web前端:2022年十大React表库
    Web前端:2022年十大React表库粤嵌HTML5培训2022-04-1810:23广东表格是每个应用程序的关键组件,手动构建和样式表不再有效,因为有大量完全准备好的库可用于该功能。因此,我们利用这些库来简化我们的前端任务。我们收集了一些将在2022年派上用场的最佳React......
  • netcore请求json斜杠带空格导致请求报错
    我用netcore发布了一个webapi接口,个别电脑,同样的浏览器(谷歌),swagger调用接口的时候,它的json体会加空格,然后请求就会报错。这是控制器里的方法下图是请求输入: 下图是加了空格的请求内容,如红色框所示,带了空格 下图是报错的内容下图是正常请求的内容,可以返回想要的结果......
  • C# Async、Await原理
    1、使用异步编程需要async和await:Task任务可以使用aweit匿名方法(包括Lambda表达式),通过async也可以变成异步方法2、加asyncawait表示这个方法可以异步顺序执行。(不加await会出现并行执行)3、async+await函数调用不会造成阻塞,它内部所有的await阻塞都被封装在一......
  • React Table 表库
    ReactTableReactTable 是一个比较特别的存在。它可以说是所有表格组件中的F-22战斗机,包含天量功能,可以几乎定制无限复杂的表格需求。GitHub、亚马逊、微软、Uber的大量前端项目都在大量使用ReactTable。它的作者也是个传奇人物,不光创作了ReactTable,还有ReactQuery,......
  • react hook
    当我们想在两个函数之间共享逻辑时,我们会把它提取到第三个函数中。必须以“use”开头吗?必须如此。这个约定非常重要。不遵循的话,由于无法判断某个函数是否包含对其内部Hook的调用,React将无法自动检查你的Hook是否违反了Hook的规则小练习使用自定义hooks实现鼠标移动......
  • oracle数据库使用to_timestamp格式化日期数据时,报错: ORA-01821: date format not reco
    今天偶然发现一个问题:我使用的数据库是11.2版本的sql语句:SELECTto_timestamp('2023-09-1315:43:29.943','yyyy-mm-ddhh24:mi:ss.fff')ASmydataFROMdual就会报错,项目出现问题,但很神奇的时使用oracle数据库12版本的就不会报错。 网上查了下,说是毫秒处是6位的,但只显示3位......
  • tomcat报错:java.io.IOException: 您的主机中的软件中止了一个已建立的连接。页面响应
    tomcat报错:java.io.IOException:您的主机中的软件中止了一个已建立的连接。tomcat报错:org.apache.catalina.connector.ClientAbortException:java.io.IOException:您的主机中的软件中止了一个已建立的连接。 出现原因:1、由于客户端在发送请求后,还没等服务器响应就断开了......
  • SpringMVC报错:HTTP Status 405 - JSPs only permit GET POST or HEAD
    错误描述如果项目是运行在Tomcat8及以上版本,浏览器发出的PUT请求和DELETE请求可以被页面控制器(Controller)成功接收到,但是返回JSP页面则会报HTTP405的错误提示:"消息JSP只允许GET、POST或HEAD。Jasper还允许OPTIONS"。原因分析原因是Tomcat按照JCP规范(JSP......
  • [git] 报错unsafe repository xxx is owned by someone else解决方法
    git进行了版本升级,添加了新的目录安全限制。造成在进行git常规操作时,或在各类编辑器如VSCode中无法发现.git文件,报错:fatal:unsaferepository(xxxisownedbysomeoneelse.)Toaddanexceptionforthisdirectory,callgitconfig–global–addsafe.directory方......