reactjs能否正常使用IE8?我正在使用React v0.11.1。
以下代码无法在IE8中运行。适用于所有其他浏览器
SCRIPT438:对象不支持属性或方法' isArray' 文件:react.js,行:17372,列:37 SCRIPT5009:' React'未定义 文件:myreact.js,行:3,列:1 SCRIPT438:对象不支持属性或方法' map' File:JSXTransformer.js,Line:12637,Column: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")
);
答案 0 :(得分:4)
您需要使用react docs中所述的以下填充/ pollyfill。 es5-shim将解决您看到的特定isArray错误。
答案 1 :(得分:0)
我已设法使用以下代码在IE8中启动我的React应用程序:
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
html属性
es5-shim/es5-sham
将在defer
之后加载