web-dev-qa-db-ja.com

React JSはInternet Explorer 9で動作しません

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>
18
user1620122

通常、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">
39
monastic-panic

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

リンクリファレンス: https://www.npmjs.com/package/react-app-polyfill

3
Manjula Devi