【问题标题】:Is there any way to get support of IE 8 with JSX and ES6 to React JS有什么方法可以通过 JSX 和 ES6 获得对 React JS 的 IE 8 支持
【发布时间】:2017-08-22 13:51:18
【问题描述】:

刚接触React.js和google研发发现React 0.14.X版本支持IE 8浏览器。但是 Babel's(JSX Transformer) Browser.js 不能在 IE8 浏览器上运行。 IE 8 浏览器中的控制台没有错误。请建议使用 JSX 的 React js 的整个架构,它也支持 IE 8。

    <!DOCTYPE html>
<html lang="en">
  <head>
    <title>My First React Example</title>
  </head>
  <body>
    <div id="react-app"></div>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.8/react.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.8/react-dom.min.js"></script>


    <script>
     var contacts = [
              {key: 1, name: "Anurag Dadheech", email: "anurag.dadheech@gmal.com", description: "This is descrption"},
              {key: 2, name: "Priyank Soni", email: "priyank.soni@gmai.com"},
              {key: 3, name: "Jayesh Helaiya", email: "jayesh@gmal.com"},
            ]

            var ContactItem = React.createClass({
              propTypes: {
                name: React.PropTypes.string.isRequired,
                email: React.PropTypes.string.isRequired,
                description: React.PropTypes.string,
              },

              render: function() {
                // I wrap mult-line return statements in parentheses to avoid the
                // inevitable bugs caused by forgetting that JavaScript will throw away
                // the final lines when possible. The parentheses are not strictly
                // necessary.
                return (
                  React.createElement('li', {},
                    React.createElement('h2', {}, this.props.name),
                    React.createElement('a', {href: 'mailto:'+this.props.email}, this.props.email),
                    React.createElement('div', {}, this.props.description)
                  )
                )
              },
            })

            var contactItemElements = contacts
              .filter(function(contact) { return contact.email })
              .map(function(contact) { return React.createElement(ContactItem, contact) })

            var rootElement =
              React.createElement('div', {}, 
                React.createElement('h1', {}, "Contacts"),
                React.createElement('ul', {}, contactItemElements)
              )

            ReactDOM.render(rootElement, document.getElementById('react-app'))
    </script>
  </body>
</html>

它在 chrome 和 Firefox 中运行良好,但在 IE 8 中它提供了

__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED' is null or not and object

【问题讨论】:

  • 您能告诉我们您遇到的确切错误吗?还有你在用什么,webapck,browserify,Grunt?我们可以查看您的配置文件吗?谢谢
  • 实际上我们还没有开始项目工作,但验证了所有方面在 IE 8 上的工作,所以我创建了一个演示应用程序。
  • @Stelios Voskos 我已经发布了代码和错误请建议

标签: reactjs jsx babeljs


【解决方案1】:

React js 社区表示他们为 0.14.x 提供了 IE8 支持,但大多数实用程序在 IE8 中无法运行,因此最好选择 angularjs 1.2.x。有很多关于 IE8 的支持。你永远不会后悔。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-07
    • 2015-07-20
    • 1970-01-01
    • 2015-04-25
    相关资源
    最近更新 更多