React项目遇到的IE问题详解
最近接手了一个React项目,遇到了IE下的两个问题
IE11报告的错误如下:
在跟踪它之后,我发现其他一些npm包使用了startsWith方法,所以您可以自己填充它:
if(!string . prototype . starts with){ string . prototype . starts with=function(search,pos) { return this.substr(!pos || pos 0?0 : pos,搜索。length)==search } }但是添加原型的方法毕竟不好,可以通过引入@babel/polyfill,并在入口文件中引入import '@babel/polyfill '来解决;
IE11问题解决后,IE10又出问题了。
在做了很多关于stackoverflow和github的帖子后,在这篇帖子中发现是Object.setPrototypeOf的问题,上面说支持IE9-11,实际上在源代码中只实现了11(https://github。com/Paul Millr/es6-shim/blaze/master/readme。MD # l78)
解决方案可以是在polyfill url后添加exclusions=object . set rototypeof,或者实现该对象。自己设置rototypeof方法。我在这里介绍一个库setprototypeof,然后添加对象。setprototypeof=条目文件中的require(' setrototypeof ')。
事实上,这个库中的实现代码非常少,所以您可以简单地查看一下
请使用严格的'/* ESL int no-proto : 0 */module . exports=object . set rototypeof | |({ _ _ proto _ _ :[]} instance of Array?setProtoOf : mixinProperties)函数set rotof(obj,proto) { obj。_ _ proto _ _=proto return obj }函数mixinProperties (obj,proto) { for (var prop in proto) { if(!Obj。hasown property(prop)){ obj[prop]=proto[prop]} } return obj }以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。
版权声明:React项目遇到的IE问题详解是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。