资讯专栏INFORMATION COLUMN

React项目中碰到的IE问题

gotham / 434人阅读

摘要:最近接手一个项目,在下碰到了俩问题报错如下跟踪一下之后,发现是一些其他的包里面用到了这个方法,可以自己一下不过加的方法毕竟不好,可以通过引入解决,在入口文件中引入问题解决后,又出问题了。。。

最近接手一个React项目,在IE下碰到了俩问题

IE11报错如下:

跟踪一下之后,发现是一些其他的npm包里面用到了startsWith这个方法,可以自己polyfill一下:

if (!String.prototype.startsWith) {
  String.prototype.startsWith = function (search, pos) {
    return this.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search
  }
}

不过加prototype的方法毕竟不好,可以通过引入@babel/polyfill解决,在入口文件中引入import "@babel/polyfill";

IE11问题解决后,IE10又出问题了。。。

犯了stackoverflow和github的很多帖子之后,在这个帖子里找到,发现是Object.setPrototypeOf的问题,Object.setPrototypeOf说是支持了IE9-11, 实际在源码里只实现了11+(https://github.com/paulmillr/...

解决办法可以是在polyfill url后加上excludes=Object.setPrototypeOf, 或者自己实现Object.setPrototypeOf方法,我这里引入了一个库setprototypeof,然后在入口文件中加上Object.setPrototypeOf = require("setprototypeof");

其实这个库里的实现代码非常少, 可以简单看下

"use strict"
/* eslint no-proto: 0 */
module.exports = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties)

function setProtoOf (obj, proto) {
  obj.__proto__ = proto
  return obj
}

function mixinProperties (obj, proto) {
  for (var prop in proto) {
    if (!obj.hasOwnProperty(prop)) {
      obj[prop] = proto[prop]
    }
  }
  return obj
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/109192.html

相关文章

  • ES6 + Webpack + React + Babel 如何在低版本浏览器上愉快玩耍(上)

    摘要:起因某天,某测试说这个页面在下白屏,也白。。某前端开发吭哧吭哧。。。一上午的时间就过去了,搞定了。第二天,某测试说又白了。。某前端开发吭哧吭哧。。。谁用的,出来我保证削不屎你。原谅我不禁又黑了一把。 起因 某天,某测试说:这个页面在 IE8 下白屏,9也白。。 某前端开发: 吭哧吭哧。。。一上午的时间就过去了,搞定了。 第二天,某测试说:IE 又白了。。 某前端开发: 吭哧吭哧。。。谁...

    you_De 评论0 收藏0
  • Luy 1.0 :一个React-like轮子诞生

    摘要:司徒正美的一款了不起的化方案,支持到。行代码内实现一个胡子大哈实现的作品其实就是的了源码学习个人文章源码学习个人文章源码学习个人文章源码学习个人文章这几片文章的作者都是司徒正美,全面的解析和官方的对比。 前言 在过去的一个多月中,为了能够更深入的学习,使用React,了解React内部算法,数据结构,我自己,从零开始写了一个玩具框架。 截止今日,终于可以发布第一个版本,因为就在昨天,我...

    codecook 评论0 收藏0
  • 使用React 应当注意几个地方

    摘要:都会造成错误,注意一定一定严格的用,所以我建议直接复制我的。因为用的话他会转义代码,写不写其实一个样。不可避免的,构建肯定是要用到的。这个时候一般用的是在外面保存然后里面调用第二个坑更隐蔽。 目标人群 献给熟悉基础的React语法的刚接触React的同学~ 如果你已经写过半年以上的React那也不用看了,毕竟我水平并不高 Whats React React 是一个不存在的网络公司Fac...

    高璐 评论0 收藏0
  • 浏览器兼容(CSS部分)

    摘要:对浏览器兼容问题,一般分,,兼容,兼容。特别是增加了许多新标签,低版本浏览器会存在不兼容的情况。出现这个问题的原因是之前的浏览器都会给标签一个最小默认的行高的高度。 **我所说的兼容性问题,主要是说IE与几个主流浏览器如firefox,google等。而对IE浏览器来说,IE7又是个跨度,因为之前的版本更新甚慢,bug甚多。从IE8开始,IE浏览器渐渐遵循标准,到IE9后由于大家都一致...

    gityuan 评论0 收藏0

发表评论

0条评论

gotham

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<