2016-07-28 1 views
0

Я разработал реактивный SPA, и он отлично работает во всех браузерах, кроме Safari. ошибка, которую я получаю в моей консоли прилагаются, как изображение ниже.Reactjs webapp дает ошибку только в браузере Safari - «undefined» не является функцией (оценка «ReactElementValidator.createElement.bind (null, type)»

ошибка происходит из двух файлов. Один из шрифта-устрашающего КДС ссылки

и другой приходит из моей пачки JS, который создается с помощью кода

gulp.task("bundle", function() { 
return browserify({ 
    entries: "./app/js/index.jsx", 
    debug: true 
}).transform(reactify) 
    .bundle() 
    .pipe(source("bundle.js")) 
    .pipe(gulp.dest("app/")) 

}) 

Любые ссылки, по которым эта проблема является возникающие? Заранее спасибо.

Error console for Safari

ответ

0

Добавление polyfills для привязки фиксированной проблемы.

`if (!Function.prototype.bind) { 
    Function.prototype.bind = function(oThis) { 
    if (typeof this !== 'function') { 
     // closest thing possible to the ECMAScript 5 
     // internal IsCallable function 
    throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable'); 
} 

var aArgs = Array.prototype.slice.call(arguments, 1), 
    fToBind = this, 
    fNOP = function() {}, 
    fBound = function() { 
     return fToBind.apply(this instanceof fNOP 
      ? this 
      : oThis, 
      aArgs.concat(Array.prototype.slice.call(arguments))); 
    }; 

if (this.prototype) { 
    // Function.prototype doesn't have a prototype property 
    fNOP.prototype = this.prototype; 
} 
fBound.prototype = new fNOP(); 

return fBound; 
}; 
} 

`

После фиксации их, я получил другую ошибку с РЕАКТ INTL, которая работает на всех браузерах, кроме сафари. Таким образом, для этого также имеется полиполк на своем веб-сайте.

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