我使用babel 6.7构建单页React.js网络应用程序。我试图包括所有相关的填充物,例如babel-polyfill使其与ES5浏览器兼容。即使如此,我仍然会像这样一次得到一个javascript错误
Object doesn't support property or method 'jscomp_symbol_iterator0'
主要来自Windows 7和Windows 7上的用户8.1运行IE10 +。
我假设它与js Symbol.iterator不受支持有关。有没有办法可以为旧浏览器填充此内容?
谢谢!
答案 0 :(得分:2)
在我的情况下错误:
Object不支持属性或方法'Symbol.iterator'
指向与for
循环的ES6语法相关的特定行。即,我有这个:
for(let el of document.getElementsByClassName('especial-els')) { /* ... */ }
我需要做的就是修复它,将这个循环改为“旧式”循环:
let especialEls = document.getElementsByClassName('especial-els');
for(let i = specialEls.length - 1; i >= 0; i--) { /* ... */ }
此错误仅发生在Edge浏览器中(不在Chrome中,而不在Firefox中),特别是仅在此for(let i of iterator)
循环中(我有其他类似的循环遍历数组并且错误未显示) 。我的猜测是document.getElementsByClassName()
返回一个“特殊的”迭代器。
答案 1 :(得分:0)
您应该添加以下内容'要求'语句:
require('core-js/es6/object');
require('core-js/es6/map');