2016-04-26 3 views
3

Я использую babel 6.7 для создания одной веб-страницы React.js. Я попытался включить все соответствующие полисы, например. babel-polyfill, чтобы он совместим с браузерами ES5. Даже до сих пор, я получаю ошибку яваскрипта и теперь каждый раз, как этотОбъект не поддерживает свойство или метод 'jscomp_symbol_iterator0'

Object doesn't support property or method 'jscomp_symbol_iterator0' 

в основном от пользователей на окнах 7 & 8.1 работает IE10 +.

Я предполагаю, что это связано с тем, что символ js Symbol.iterator не поддерживается. Есть ли способ, которым я могу полилизовать это для старых браузеров?

Спасибо!

+0

- все ваши версии babel в актуальном состоянии? Я вижу проблемы на этом, но theyre old –

+0

Да, я только что обновил все последние версии babel и все последние плагины и полисы. Не могли бы вы показать мне, какие проблемы вы обнаружили? Мне было трудно найти что-либо по этой теме. –

ответ

0

Вы должны требовать следующих два модуля для запуска:

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

В моем случае ошибки:

Object doesn't support property or method 'Symbol.iterator'

Заостренного к конкретной линии, связанной с синтаксисом ES6 в виде for цикла. То есть, у меня было так:

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() возвращает «особенный» итератор.

Смежные вопросы