uniapp 开发微信小程序踩坑:TypeError: Cannot read property ‘FormData‘ of undefined

这篇具有很好参考价值的文章主要介绍了uniapp 开发微信小程序踩坑:TypeError: Cannot read property ‘FormData‘ of undefined。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求: UniAppH5 端已经正常使用,现在打算兼容微信小程序

1. 问题分析

本以为应该很顺利,但是一上来就直接报错了,心里很慌呀,报错信息如下:

页面[components/major/major-intro]错误:
 TypeError: Cannot read property 'FormData' of undefined
    at Object.<anonymous> (vendor.js?t=wechat&s=1679123222779&v=0a98776a18c77e11bdf2a8a15af44f38:20109)
    at __webpack_require__ (runtime.js?t=wechat&s=1679123222779&v=c88fbffc60b4101fd05b6808eff1ad49:92)
    at Object.<anonymous> (vendor.js?t=wechat&s=1679123222779&v=0a98776a18c77e11bdf2a8a15af44f38:20097)
    at __webpack_require__ (runtime.js?t=wechat&s=1679123222779&v=c88fbffc60b4101fd05b6808eff1ad49:92)
    at Object.<anonymous> (vendor.js?t=wechat&s=1679123222779&v=0a98776a18c77e11bdf2a8a15af44f38:19751)
    at Object.<anonymous> (vendor.js?t=wechat&s=1679123222779&v=0a98776a18c77e11bdf2a8a15af44f38:19976)
    at __webpack_require__ (runtime.js?t=wechat&s=1679123222779&v=c88fbffc60b4101fd05b6808eff1ad49:92)
    at Object.<anonymous> (vendor.js?t=wechat&s=1679123222779&v=0a98776a18c77e11bdf2a8a15af44f38:19681)
    at __webpack_require__ (runtime.js?t=wechat&s=1679123222779&v=c88fbffc60b4101fd05b6808eff1ad49:92)
    at Object.<anonymous> (vendor.js?t=wechat&s=1679123222779&v=0a98776a18c77e11bdf2a8a15af44f38:19609)
(env: Windows,mp,1.06.2209190; lib: 2.30.2)

点击源码中看到的是这个:

/***/ }),
/* 170 */
/*!***********************************************!*\
  !*** ./node_modules/form-data/lib/browser.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

/* eslint-env browser */
module.exports = typeof self == 'object' ? self.FormData : window.FormData;
/***/ }),

【注】刚开始的时候以为是微信小程序兼容性或者是 uniapp 兼容性的问题,但是去了 axiosGitHub issue 中去搜索,结果发现了有人遇到了同样的问题。啊,,这,,看样子这三者都有各自的问题呀。

Issue 地址:node Cannot read property ‘FormData’ of undefined #5201

uniapp 开发微信小程序踩坑:TypeError: Cannot read property ‘FormData‘ of undefined

经过了多次折腾与验证,不认有心人,大概率破案了:就是在微信小程序上,导致 axios 在判断的时候出现问题,在 H5 的浏览器中就没有这个错误(看起来是这两个的锅,还真的不是 uniapp 的锅,哈哈)。

2. 解决方案

2.1 降低 axios 版本

axios0.x 版本最高为 0.27.2 版本,所以直接如下操作即可。

# 移除已有的 axios
 npm uninstall axios
 
# 安装指定版本的 axios
 npm install axios@0.27.2

2.2 提高到 axios 指定版本(推荐)

项目中用的是 1.2.1 版本(会报错),截止到 2023年3月18日,最新的为 1.3.4,所以直接装了 1.3.4 版本,结果是可以用的,没有报错。

由此可以得出,估计 axios 自身也有问题,但是具体不知道是哪个版本修复的,没有深入排查。

# 移除已有的 axios
 npm uninstall axios

# 安装指定版本的 axios
 npm install axios@1.3.4

【注】各位大佬们,如果是其他的版本也可以用的话,告诉小弟一下! 祝头发多多!!!

uniapp 开发微信小程序踩坑:TypeError: Cannot read property ‘FormData‘ of undefined

个人博客:Roc’s Blog文章来源地址https://www.toymoban.com/news/detail-503012.html

到了这里,关于uniapp 开发微信小程序踩坑:TypeError: Cannot read property ‘FormData‘ of undefined的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包