Internet Explorer 9でReactを使用しようとしていますが、非常に単純なものを実行しようとしても次のエラーが発生します。
SCRIPT438:オブジェクトはプロパティまたはメソッド 'isArray'をサポートしていません。react-with-addons.js、行4文字317
SCRIPT438:オブジェクトは、プロパティまたはメソッド 'create' JSXTransformer.js、行4文字326をサポートしていません
私は https://facebook.github.io/react/docs/working-with-the-browser.html を読みました。これはIE8がこれらの問題を抱えているかもしれないが、IE9については言及していないことを示しています。グーグルは、実際に解決策を提示しませんでした。
それでも、私はそのページで提案されているように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>
通常、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">
Index.jsファイルに、ポリフィルを追加する必要があります。これらのインポートは、インポートの最初にある必要があります。
import 'react-app-polyfill/ie9';
import 'react-app-polyfill/ie11';
//other imports
今すぐウルで開いて、それが動作します。
インポートする前に、react-app-polyfillをインストールする必要があります。
//To install use below command:
npm install react-app-polyfill