【小程序】 解决 Function(...) is not a function问题

这篇具有很好参考价值的文章主要介绍了【小程序】 解决 Function(...) is not a function问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

  • 在小程序中,只要写了aync await(或者是你引入的库中写了),如果你使用了babel编译且babel的版本大于7,则会出现这个问题。

原因

  • 小程序中会禁用一些动态写法,在babel/runtime中引入的index.js中写了这么一段:
// TODO(Babel 8): Remove this file.

var runtime = require("../helpers/regeneratorRuntime")();
module.exports = runtime;

// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=
try {
  regeneratorRuntime = runtime;
} catch (accidentalStrictMode) {
  if (typeof globalThis === "object") {
    globalThis.regeneratorRuntime = runtime;
  } else {
  Function("r", "regeneratorRuntime = r")(runtime);
  }
}
  • 这里会走到Function("r", "regeneratorRuntime = r")(runtime);中,小程序不支持该语法,但是浏览器支持,可以在小程序控制台中测试一下。

解决

  • 解决方法很多,一般来说,我们需要使用regenerator-runtime的0.11.0版本,对babel/runtime打个补丁包,去了不合法语法,加上require('regenerator-runtime'),另外,需要配置别名:
  alias: {
    'regenerator-runtime': path.resolve('./node_modules', 'regenerator-runtime'),
  },
  • 此时即可正常。

文章来源地址https://www.toymoban.com/news/detail-506701.html

到了这里,关于【小程序】 解决 Function(...) is not a function问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 解决createRoot is not a function

    报错: 出现的原因:在于把react18使用的vite构建,在开发中因react版本太高与其他库不兼容,而在降级的时候,出现以上dom渲染出现报错。 解决:将 src/index.j文件改成如下 注意在降级修改package.json时候需要注意react、react-dom的版本一致;然后重新 npm install 即可。以下给出pa

    2024年02月13日
    浏览(37)
  • 前端date.locale is not a function错误解决办法

    在使用antd组件DatePicker时,修改数据之前做数据回显,但是在数据回显时总是会报一个错误:date.locale is not a function。经过一步步的排错,最终确定是使用antd中DatePicker(日期选择器)组件的问题,此时我只在表单中写了一个DatePicker组件,并在表单中进行了数据绑定 查阅了很

    2024年02月11日
    浏览(41)
  • 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日
    浏览(54)
  • Uncaught TypeError: XXX is not a function的解决方法

    今天在学习JS的时候,在学函数时,发现了一个有点意思的问题: 在网上找了很多方法,无果,毕竟不是每个人的原因都相同。 再回看了一下笔记,对比了一下代码,找到了可疑之处: 上面就是我当时看视频拍下的照片,但是笔记内容没有很完善,当时听课的时候,还是抱

    2024年02月11日
    浏览(57)
  • wx.getUserProfile is not a function微信小程序报错

    在使用小程序wx.getUserProfile接口调用时报错:wx.getUserProfile is not a function  解决办法: 在微信开发者工具上打开详情,对调试基础库进行升级  OK了!

    2024年02月07日
    浏览(36)
  • 解决:this.$refs引用子组件报错 is not a function

    问题描述: vue通过this.$refs引用子组件出现undefined或者is not a function的错误 报错如下: _this3.$refs.fileUpload.changeFileList is not a function 问题分析: 问题1:出现undefined错误 包含子组件的标签需要放在中第一个子标签的子标签中,而且需要设置ref属性, 因为父组件逻辑代码中是通过

    2024年02月11日
    浏览(45)
  • 微信小程序错误-TypeError: this.setData is not a function

    微信小程序在与后台获取数据的时候遇到: TypeError: this.setData is not a function错误。 产生原因: 输出结果能输出,会产生警告,原因是this不能直接在请求的回调函数里写this, 解决方法:     在请求外声明一个变量,接收onload函数的this。  

    2024年02月16日
    浏览(46)
  • uniapp 小程序订阅消息报错( wx.requestSubscribeMessage is not a function )

    1、wx.requestSubscribeMessage 提示 is not a function 出现这种问题一般是基础库版本太低,在微信开发者工具中将调试基础库版本设置为大于 2.8.2 即可。 或者请在真机测试(打包上传体验版本测试) 2、wx.requestSubscribeMessage 不弹出授权窗体 在基础库版本大于2.8.2的前提下,此问题是由

    2024年02月09日
    浏览(42)
  • 小程序弹窗报错this.$refs.popup.open is not a function

    代码 报错信息 解决方法 this.$refs.popup[0].open()

    2024年02月05日
    浏览(45)
  • Syntax Error: TypeError: this.getOptions is not a function的解决(Vue)

    报错信息: TypeError: this.getOptions is not a function 这个是在运行项目是遇到的问题 这个报错是类型错误,this.getOptions 不是一个函数 。这个错误一般就是less-loader库里的错误。 主要是less-loader版本太高,不兼容this.getOptions方法。 解决方案: 找到package.json文件中的“less”和“les

    2024年02月12日
    浏览(53)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包