Babel.js 如何解决“未捕获的TypeError:可迭代,hasOwnProperty不是函数”?

e37o9pze  于 2022-12-08  发布在  Babel
关注(0)|答案(1)|浏览(177)

我尝试在我的代码中使用react-leaflet-markerclusters包。但是在安装它并运行npm start之后,我得到了这个错误(

loadMessages.js?4a62:4 Uncaught TypeError: iterable.hasOwnProperty is not a function
    at traverse (loadMessages.js?4a62:4:1)
    at loadMessages (loadMessages.js?4a62:25:1)
    at eval (Root.js?e933:41:13)
    at Module../src/masterApp/components/app/Root.js (bundle.js:49970:1)
    at __webpack_require__ (bundle.js:790:30)
    at fn (bundle.js:101:20)
    at eval (index.js?b635:1:1)
    at Module../src/index.js (bundle.js:49802:1)
    at __webpack_require__ (bundle.js:790:30)
    at fn (bundle.js:101:20)

)和白色屏幕。
我在我的应用程序中对hasOwnProperty进行了全局搜索,没有结果。我假设它与一个外部包绑定。进一步挖掘后,它似乎与我在Root.js中的loadMessages导入绑定。
下面是Root.js的一段代码:

import "core-js/stable";
import "regenerator-runtime/runtime";
import React from "react";
...
import { loadMessages, LocalizationProvider } from "@progress/kendo-react-intl";
import messages from "../../../assets/messages/messages";

loadMessages(messages.ar, "ar");
loadMessages(messages.en, "en");
loadMessages(messages.es, "es");
loadMessages(messages.fr, "fr");

我已经尝试将@progress/kendo-react-intl更新到最新版本,但仍然出现TypeError。是否需要在loadMessages前面添加前缀?
如果有帮助的话,请注意我使用的是节点14.4.0和babel 7。更新超过这个版本的节点会导致节点sass错误。我应该降级babel吗?

dgtucam1

dgtucam11#

我只好岔开主题:

loadMessages(messages.ar, "ar");
loadMessages(messages.en, "en");
loadMessages(messages.es, "es");
loadMessages(messages.fr, "fr");

要:

loadMessages(JSON.stringify(messages.ar), "ar");
loadMessages(JSON.stringify(messages.en), "en");
loadMessages(JSON.stringify(messages.es), "es");
loadMessages(JSON.stringify(messages.fr), "fr");

相关问题