2016-04-26 15 views
3

我使用babel 6.7來構建單頁面React.js web應用程序。我試圖包含所有相關的polyfills例如babel-polyfill使其與ES5瀏覽器兼容。即使如此,我得到一個JavaScript錯誤現在每一次這樣的對象不支持屬性或方法'jscomp_symbol_iterator0'

Object doesn't support property or method 'jscomp_symbol_iterator0' 

主要來自於Windows 7 & 8.1運行IE10 +用戶。

我假設這與js Symbol.iterator不受支持有關。有沒有一種方法可以填充舊的瀏覽器?

謝謝!

+0

是你最新的babel版本嗎?我看到這個問題,但他們很老 –

+0

是的,我剛剛更新到所有最新版本的babel和所有最新的插件和polyfills。你能告訴我你發現了哪些問題嗎?我很難找到關於這個話題的任何內容。 –

回答

0

你應該需要以下兩個模塊運行:

require('core-js/es6/object'); 
require('core-js/es6/map'); 
1

在我的情況下錯誤:

Object doesn't support property or method '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--) { /* ... */ } 

此錯誤僅發生在邊緣瀏覽器(不是在Chrome中,而是在Firefox中),特別是在這個for(let i of iterator)循環中(我有其他類型的循環遍歷數組,並且錯誤沒有顯示)。我的猜測是,document.getElementsByClassName()返回一個「特殊」的迭代器。

相關問題