2014-09-26 100 views
2

reactjs能否正常使用IE8?我正在使用React v0.11.1。reactJS與IE8無法正常工作

以下代碼不適用於IE8。適用於所有其他瀏覽器精細

SCRIPT438:對象不支持屬性或方法 'IsArray的' 文件:react.js,行:17372,列:37 SCRIPT5009: '陣營' 是未定義 文件:myreact .js文件,行:3列:1 SCRIPT438:對象不支持屬性或方法 '地圖' 文件:JSXTransformer.js,行:12637,列:3

/** @jsx React.DOM */ 

var MyComponent = React.createClass({displayName: 'MyComponent', 

    getDefaultProps:function(){ 

      return{ 

       text:"", 
       numbers:0 
      } 

    }, 

    getInitialState:function(){ 


     return {txt:"initial", id:0} 
    }, 

    updateText: function(event){ 

     this.setState({text:event.target.value}) 
    }, 

    propTypes:{ 

     text:React.PropTypes.string, 

     numbers: React.PropTypes.number.isRequired 
    }, 



    render:function(){ 

     return (
        React.DOM.div(null, 
         Widget({text: this.state.text, update: this.updateText}), 
         Widget({text: this.state.text, update: this.updateText}) 
        ) 
      ) 
    } 

}); 

var Widget = React.createClass({displayName: 'Widget', render:function(){ 

     return(
       React.DOM.div(null, 
       React.DOM.input({type: "text", onChange: this.props.update}), 
       React.DOM.div(null, this.props.text) 

      ) 
      ) 
    } 

}); 

React.renderComponent(
    MyComponent({text: "HI there", numbers: 34}), 
     document.getElementById("content") 
    ); 
+4

可能重複[爲什麼IE8在使用Facebook的React.js時得到腳本錯誤](http://stackoverflow.com/questions/19259427/why-is-ie8-getting-a-script -error-when-using-facebooks-react-js) – chiccodoro 2014-09-26 08:00:37

+0

http://facebook.github.io/react/docs/working-with-the-browser.html#browser-support-and-polyfills – David 2014-09-26 10:49:15

+0

感謝您的評論,我包括es5Shim.js和es5Sham.js。現在它工作正常。 – rishinarang 2014-09-26 11:39:11

回答

4

您需要使用如在中所述的墊片/ pollyfill之後。 es5-shim將解決您所看到的特定isArray錯誤。

0

我已經成功使用下面的代碼來啓動我的應用程序作出反應在IE8:

App.js:

require('core-js'); //Important! 
var React = require('react'); 
var ReactDOM = require('react-dom'); 
var Application = React.createClass({ ... }); 
ReactDOM.render(React.createElement(Application,null), document.getElementById("app-container")); 


的index.html:

<!DOCTYPE html> 
<html> 
<head lang="en"> 
    <meta charset="UTF-8"> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/es5-shim/4.5.7/es5-shim.min.js"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/es5-shim/4.5.7/es5-sham.min.js"></script> 
    <script type="text/javascript" src="bundle.js" defer></script> 
</head> 
<body> 
<div id="app-container"></div> 
</body> 
</html> 


評論:bundle.js將在之後加載es5-shim/es5-sham bec使用defer html屬性

+0

我沒有在我的項目中使用ES6 – 2016-03-18 10:02:32