2016-04-26 14 views
3

Ich verwende babel 6.7, um eine einzelne Seite React.js Web App zu erstellen. Ich habe versucht, alle relevanten Polyfills, z. babel-polyfill, um es mit ES5-Browsern kompatibel zu machen. Sogar noch, erhalte ich einen Javascript-Fehler hin und wieder wie dieseObjekt unterstützt keine Eigenschaft oder Methode 'jscomp_symbol_iterator0'

Object doesn't support property or method 'jscomp_symbol_iterator0' 

meist von den Benutzern über windows 7 & 8.1 läuft IE10 +.

Ich gehe davon aus, dass es etwas damit zu tun hat, dass js Symbol.iterator nicht unterstützt wird. Gibt es eine Möglichkeit, diese für ältere Browser zu füllen?

Danke!

+0

sind alle Ihre Version von Babel auf dem neuesten Stand? Ich sehe Probleme auf diesem aber theyre alt –

+0

Ja, ich habe gerade aktualisiert, um die neuesten Versionen von Babel und all die neuesten Plugins und Polyfills. Kannst du mir zeigen, welche Probleme du gefunden hast? Es fiel mir schwer, etwas zu diesem Thema zu finden. –

Antwort

0

Sie sollten die folgenden zwei Module benötigen auszuführen:

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

In meinem Fall den Fehler:

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

wies auf eine bestimmte Linie auf die ES6 bezogenen Syntax einer for Schleife. Dh, ich hatte dies:

for(let el of document.getElementsByClassName('especial-els')) { /* ... */ } 

Und alles, was ich tun musste, um es zu beheben diese Schleife zu einem „alten Stil“ Schleife änderte:

let especialEls = document.getElementsByClassName('especial-els'); 
for(let i = specialEls.length - 1; i >= 0; i--) { /* ... */ } 

Dieser Fehler trat nur in den Edge-Browser (nicht in Chrome und nicht in Firefox) und besonders nur in dieser for(let i of iterator) Schleife (ich habe andere Schleifen dieser Art, die über Arrays iterieren und der Fehler nicht angezeigt wird). Meine Vermutung ist, dass document.getElementsByClassName() einen "speziellen" Iterator zurückgibt.

Verwandte Themen