Реакция JS не работает с Internet Explorer 9

Я пытаюсь использовать React с Internet Explorer 9, но получаю следующие ошибки, даже пытаясь запускать что-то очень болотное:

SCRIPT438: объект не поддерживает свойство или метод 'isArray' реакция-с-addons.js, строка 4 символ 317

SCRIPT438: объект не поддерживает свойство или метод 'create' JSXTransformer.js, строка 4, символ 326

Я прочитал https://facebook.github.io/react/docs/working-with-the-browser.html, в котором говорится, что IE8 может иметь эти проблемы, но не упоминает об IE9. Googling действительно не выработал никаких решений.

Тем не менее, я попытался добавить es5-shim/sham, как было предложено на этой странице. Это приводит к другой ошибке:

SCRIPT438: объект не поддерживает свойство или метод 'hasAttribute' es5-shim.min.js, строка 6 символ 4143

Кто-нибудь сталкивался с этими ошибками раньше в IE9 или иначе?

Спасибо за помощь!

Полный код, который я пытаюсь запустить, следующий:

<html>
	<head>
		<script src="js/es5-shim.min.js"></script>
		<script src="js/es5-sham.min.js"></script>
		<script src="http://code.jquery.com/jquery-1.11.2.min.js"></script>
		<script src="js/react-with-addons.js"></script>
		<script src="js/JSXTransformer.js"></script>

	</head>
	<body>
		<div id="container"></div>
		<script type="text/jsx">
			React.render(
				<h1>HELLO WORLD!</h1>
			);
		</script>
	</body>
</html>

Ответ 1

Как правило, вам нужно включить указанные полизаполнения для функций ES5 (как вы заметили): https://facebook.github.io/react/docs/react-dom.html#browser-support

Вам также может понадобиться HTML5 Shiv в дополнение к предоставленным вами поли-заливкам.

Точнее говоря, проблема, вероятно, не в полифиллах, а в режиме документа, в котором работает IE9. Вы хотите убедиться, что в своем HTML файле вы устанавливаете правильный режим документа, чтобы IE знал, какую версию выбрать. В противном случае, даже если вы используете IE9, он может быть нацелен на IE7, что не очень хорошо.

<meta http-equiv="X-UA-Compatible" content="IE=edge">

Ответ 2

В файле index.js вы должны добавить полифилл. Этот импорт должен быть первым в вашем импорте.

import 'react-app-polyfill/ie9';
import 'react-app-polyfill/ie11';   
//other imports

Теперь откройте в ур, то есть это работает.

Перед импортом вы должны установить реакцию-приложение-полифилл.

 //To install use below command:

 npm install react-app-polyfill

ссылка на ссылку: https://www.npmjs.com/package/react-app-polyfill