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