React报错修复:“Uncaught TypeError: destroy is not a function”

这篇具有很好参考价值的文章主要介绍了React报错修复:“Uncaught TypeError: destroy is not a function”。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

报错:Uncaught TypeError: destroy is not a function at commitHookEffectListUnmount
如果你在useEffect函数中使用了async,运行后会出现该报错。

原理解析:
    要知道,useEffect 钩子函数的一个特性是清理功能,即return函数。如果你从 useEffect 钩子函数返回任何东西,它必须是一个清理函数,此函数将在组件卸载时运行。相当于类组件中的 componentWillUnmount 生命周期方法。

    在 JavaScript 中, async...await 会让程序在等待异步任务完成后才会继续执行。 异步函数也总是返回一个 Promise;如果函数还没有返回,则返回值会自动包装在 Promise 中。
那么我们要是这么写(错误示范),箭头函数直接指向就是返回值,就相当于是返回了一个promise函数了:

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

正确写法,在用箭头函数时加个花括号,什么都不返回:

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

修改后程序可正常执行。文章来源地址https://www.toymoban.com/news/detail-827858.html

到了这里,关于React报错修复:“Uncaught TypeError: destroy is not a function”的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • react-Native init初始化项目报错”TypeError: cli.init is not a function“

    在react-native init appDemo 创建项目时,报错TypeError: cli.init is not a function。 产生这个问题的原因是:使用这种方式创建工程,react-native版本是0.69 版本上不适用。可以检查下自己安装的React-native的版本。 使用: npx react-native init Demo --version 0.68.2 即可。 解决方法不好用的话,那就

    2024年02月15日
    浏览(44)
  • 解决 Uncaught (in promise) TypeError: list is not iterable 报错

    最近在项目中遇到 Uncaught (in promise) TypeError: list is not iterable 报错,虽然不影响代码运行,但是看着报错感觉有点难受,试试能不能解决它 看了很多篇文章,都是说使用 Object.keys() 可以解决问题 就先使用 Object.keys() 看看,代码运行之后 因为 Object.keys() 传入的是 null 和 undefin

    2024年02月11日
    浏览(50)
  • common/main.js: TypeError: window.WeixinJSBridge.beforeinvoke is not a function 小程序工具项目运行报错

    小程序项目启动成功,但是项目空白 切报错 报错如图 解决办法:

    2024年02月11日
    浏览(46)
  • el-date-picker 的初始化数据格式理解、报错 “TypeError: date.getFullYear is not a function“

    如果后端传给前端的时间数据是字符串类型的,那么当触发 el-date-picker 组件时,就会报出很多错误,例如 这是由于初始化赋值格式的问题,需要对初始化值,进行一个 new Date(your_time_data) 前端演示模板: 1. vue知识点—element el-date-picker 插件默认时间属性default-value怎么赋值?

    2024年02月13日
    浏览(33)
  • TypeError: defineConfig is not a function

    场景:当我们在做打包配置的时候,出现如下错误 原因:由于用vue-cli直接创建了vue 3的项目,而里面的生态并非都是最新版,vue.config.js中的代码如下,使用了vue 3的语法:    解决:输入  vue upgrade, 一路向下,即可解决

    2024年02月12日
    浏览(44)
  • vue3+vite项目,安装依赖运行报错“failed to load config from xxx,TypeError: vite.createFilter is not a function”

        今天从GitHub上拉下来了一个 vue3+vite 项目,之前就是安装依赖就可以运行了,但是今天一直报错,显示 TypeError: vite.createFilter is not a function     vite版本与安装的依赖版本不匹配     近期vite3发布,但我们使用的还是v2,所以安装依赖的时候默认安装的是最新版本,这

    2024年02月21日
    浏览(57)
  • TypeError: loaderUtils.getOptions is not a function

    webpack 版本: ^5.89.0 但是直接 pnpm add loader-utils 安装的版本比较新,会报错: TypeError: loaderUtils.getOptions is not a function 。 解决方案:将低 loader-utils 版本,我这里使用 ^2.0.0 就不会再报这个错误了 思路:直接去 github 里面搜索 loaderUtils.getOptions 看看别人的版本是如何设置的,如

    2024年02月02日
    浏览(40)
  • TypeError: this.getOptions is not a function 的解决

     一、问题的出现: 在进行  React  / vue项目开发的时候,出现了这个错误: TypeError: this.getOptions is not a function ,如下所示:  二、问题的分析:         这个实际上就是 sass-loader 的版本过高或过低,与当前node版本不对应,不兼容 getOptions 函数方法,所以需要对 sass-loa

    2024年02月12日
    浏览(53)
  • TypeError: parentComponent.ctx.deactivate is not a function

    当两个组件 都可keepalive 的时候 切换就回报这个错误 runtime-core.esm-bundler.js:6086 Uncaught (in promise) TypeError: parentComponent.ctx.deactivate is not a function 路由的问题 之前的写法是 在路由节点内配置name属性,且保证为唯一标识,或其它唯一标识也行(:key=“route.name”) 加上:key=\\\"route.nam

    2024年02月05日
    浏览(31)
  • webpack 解决:TypeError: merge is not a function 的问题

    其一、存在的问题为: TypeError: merge is not a function 中文为: 类型错误:merge 不是函数 其二、问题描述为: 想执行 npm run dev 命令,运行起项目时,控制台报错 TypeError: merge is not a function; 其三、报错的信息为: A、报错的图片: B、报错的代码: 根据报错提示的信息: merge 不

    2024年02月08日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包