有没有办法通过JSX和ES6来支持IE 8到React JS

时间:2017-03-29 07:42:36

标签: reactjs jsx babel

React.js和R& S的新手D在google上发现React 0.14.X版本支持IE 8浏览器。但Babel的(JSX Transformer)Browser.js并不适用于IE8浏览器。在IE 8浏览器中控制台没有错误。请使用支持IE 8的JSX建议React js的整个架构。

    <!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

1 个答案:

答案 0 :(得分:0)

React js社区表示他们为0.14.x提供了IE8支持,但是大多数实用程序都不能在IE8中运行,所以如果你选择angularjs 1.2.x则很好。 IE8有很多支持。你永远不会后悔。