对象不支持属性或方法' jscomp_symbol_iterator0'

时间:2016-04-26 11:02:44

标签: javascript babel

我使用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不受支持有关。有没有办法可以为旧浏览器填充此内容?

谢谢!

2 个答案:

答案 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');