我尝试将React与Internet Explorer 9一起使用,但即使尝试运行非常准确的内容,也会遇到以下错误:
SCRIPT438:对象不支持属性或方法' isArray' react-with-addons.js,第4行第317行
SCRIPT438:对象不支持属性或方法'创建' JSXTransformer.js,第4行字符326
我已阅读https://facebook.github.io/react/docs/working-with-the-browser.html,其中说IE8可能存在这些问题,但未提及IE9。谷歌搜索也没有提出任何解决方案。
仍然,我尝试按照该页面上的建议添加es5-shim / sham。这会导致不同的错误:
SCRIPT438:对象不支持属性或方法' hasAttribute' es5-shim.min.js,第6行,第4143行
有没有人在IE9之前或其他地方遇到过这些错误?
感谢您的帮助!
我试图运行的完整代码是:
<html>
<head>
<script src="js/es5-shim.min.js"></script>
<script src="js/es5-sham.min.js"></script>
<script src="http://code.jquery.com/jquery-1.11.2.min.js"></script>
<script src="js/react-with-addons.js"></script>
<script src="js/JSXTransformer.js"></script>
</head>
<body>
<div id="container"></div>
<script type="text/jsx">
React.render(
<h1>HELLO WORLD!</h1>
);
</script>
</body>
</html>
&#13;
答案 0 :(得分:37)
常规您需要为ES5功能添加指定的多边形填充(正如您已注意到的):https://facebook.github.io/react/docs/react-dom.html#browser-support除了您提供的多边形填充之外,您可能还需要HTMl5 shiv
更具体地说,虽然问题可能不在于poly填充,但是文档模式IE9正在运行。你想确保在HTML文件中设置正确的文档模式,以便IE知道要定位的版本。否则,即使您使用的是IE9,也可能是针对IE7,这是不好的。
<meta http-equiv="X-UA-Compatible" content="IE=edge">
答案 1 :(得分:1)
在index.js文件中,您必须添加polyfill。这些导入应该在您的导入的第一位。
import 'react-app-polyfill/ie9';
import 'react-app-polyfill/ie11';
//other imports
现在在ur中打开即可以使用。
在导入之前,您必须安装react-app-polyfill。
//To install use below command:
npm install react-app-polyfill