React在IE上出现空白的解决方法

1.Polyfill

polyfill是在不支持该功能的Web浏览器上实现该功能的代码。在大多数情况下,它指的是实现HTML5 Web标准的JavaScript库

polyfill会保证浏览器拥有如下功能

Promise (for async / await support)
window.fetch (a Promise-based way to make web requests in the browser)
Object.assign (a helper required for Object Spread, i.e. { ...a, ...b })
Symbol (a built-in object used by for...of syntax and friends)
Array.from (a built-in static method used by array spread, i.e. [...arr])

2.react导入polyfill

npm install react-app-polyfill

or

yarn add react-app-polyfill

导入完之后记得删除node_module并重新安装一次。

之后再最外层的JS文件的最顶部加上如下的模块导入

import 'react-app-polyfill/ie9';
import 'react-app-polyfill/stable';
此模块支持IE 9以上的IE浏览器

或者

import 'react-app-polyfill/ie11';
import 'react-app-polyfill/stable';

同时,package.json做如下修改

  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all",
      "ie >= 9"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version",
      "ie 11"
    ]
  },

3. 导入完成后还是出现空白页

如果导入完成之后,空白页仍然存在,可是是react-scripts太新的问题。这里我们需要将其降级到react-scripts@3.2.0

posted @ 2020-12-18 16:25  LinM狂想曲  阅读(602)  评论(0编辑  收藏  举报