天天看点

基于[email protected]和ant design的react项目IE兼容调整

项目要求兼容IE9,在实际应用中出现以下问题:

(一)引用“babel/polyfill”后出现空白页面并且在按下F12后有报错:

基于[email protected]和ant design的react项目IE兼容调整

查找资料后修改如下:

1:重新安装 “@babel/polyfill”: “^7.0.0-beta.51”,

2:在index.js中引用

import '@babel/polyfill';
Object.setPrototypeOf = require('setprototypeof');
           

3:新建文件setprototypeof.js,代码为:

module.exports =
  Object.setPrototypeOf ||
  ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties)

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

function mixinProperties(obj, proto) {
  // make getPrototypeOf helper work
  Object.defineProperty(obj, '__proto__', {
    value: proto,
  })

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

(二)如果按下F12页面显示正常否则仍是空白页面,在index.js中添加代码

window.console = window.console || (function(){ 
var c = {}; c.log = c.warn = c.debug = c.info = c.error = c.time = c.dir = c.profile = c.clear = c.exception = c.trace = c.assert = function(){}; 
return c; 
})();
           

问题解决

参考:https://blog.csdn.net/koala25/article/details/70230046

(三)所有的:before,:after都不可用,需要使用::before,::after

(四)ant design 输入框中placeholder样式不一致

这个问题还在解决中,如果大家有好的解决方法,欢迎留言~