无法获取React JS应用以在IE 11中呈现

时间:2019-01-07 22:27:36

标签: reactjs internet-explorer

我正在尝试使React JS应用程序在IE 11中呈现,但未呈现。我相信我已经尝试了https://github.com/facebook/react/issues/8379的所有建议。这个例子对我来说在其他浏览器中效果很好。

这是我的html文件

<head>
    <meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.13.3/JSXTransformer.js"> </script>
    <script src="/static/js/test.jsx" type="text/jsx"></script>
</head>

<body>
    <div id="root"></div>
        <script type="text/jsx">
            ReactDOM.render( < Test / > ,
            document.getElementById('root')
            );
        </script>
</body>

</html>

这是/static/js/test.jsx

class Test extends React.Component {
    render() {
        return ( < h1 > This is a test < /h1>);
}

1 个答案:

答案 0 :(得分:0)

让它在IE11中工作的一种方法是导入Babel,将ES6移植到ES5,以便它可以在IE11中工作。请注意,对于内联脚本和脚本导入,脚本类型均应为“文本/ babel”。或者,您可以在Babel repl中转换javascript并替换代码。这是html文件

<!DOCTYPE html>
<html>
  <head>
    <title>First React App</title>
  </head>

  <body>
    <div id="root"></div>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.26.0/babel.min.js"></script>
    <script
      crossorigin
      src="https://unpkg.com/react@16/umd/react.development.js"
    ></script>
    <script
      crossorigin
      src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"
    ></script>
    <script src="./Test.js" type="text/babel"></script>
    <script type="text/babel">
      "use strict";
      ReactDOM.render(<Test />, document.getElementById("root"));
    </script>
  </body>
</html>

这是Test.js

"use strict";

class Test extends React.Component {
  render() {
    return <h1>Hello World</h1>;
  }
}