React build项目部署后IE浏览器报错:对象不支持"assign"属性或方法的解决(解决ie不兼容的问题)

用React build项目,部署后 IE 浏览器打不开(我用的是 IE11),控制台报错:SCRIPT438:对象不支持"assign"属性或方法。

这是 IE 浏览器 对 ES6 的兼容性问题。

解决方法:

使用 create-react-app 官方提供的 react-app-polyfill,然后在入口文件 index.js 中引入:

react-app-polyfill 软件包包括适用于各种浏览器的 polyfill ,包括 Create React App 项目使用的最低要求和常用语言功能。

用法:

安装 polyfill 软件包

可以使用 npm 或 Yarn 安装软件包:

npm install react-app-polyfill

或者:

yarn add react-app-polyfill

如果要在项目中使用,可以这样:

npm install react-app-polyfill --save

或者:

npm install react-app-polyfill --save-dev

引入 polyfill

在项目的 src/index.js 文件的开头加入下面两行代码,一定要放在第一行(最上面),否则会不起效

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

polyfill 使用详解

根据项目需求,导入你需要的最低版本的入口点,确保满足使用 Create React App 所需的最低语言功能。

例:如果导入 IE9 入口点,则将同时支持 IE10 和 IE11 。

模块确保存在以下语言功能:

Promise(为async/ await支持)

window.fetch (一种基于承诺的方法,可在浏览器中发出Web请求)

Object.assign(对象传播所需的帮助者,即{ ...a, ...b })

Symbol(for...of语法和朋友使用的内置对象)

Array.from(数组扩展使用的内置静态方法,即[...arr])

如果需要更多功能,请继续往下看。

注意:引入的时候,要放在第一行,否则会不起效。

Internet Explorer 9

// 必须放在 src/index.js 文件的第一行
import 'react-app-polyfill/ie9';

Internet Explorer 11

// 同样的,将下面一行代码放在 src/index.js 代码的最前面
import 'react-app-polyfill/ie11';

充填其他语言功能

polyfill 还可以填充目标浏览器中不可用的稳定语言功能。如果您在 Create React App 中使用,它将在 browserslist 导入 stablepolyfill 时自动使用你定义的对象,仅包含目标浏览器所需的 polyfill。

// 放在 src/index.js 的第一行
import 'react-app-polyfill/stable';
 

如果你需要同时兼容 Internet Explorer 9 或 Internet Explorer 11 ,应引入 IE9 或 IE11 和 stable 模块:

对于IE9:

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

对于IE11:

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

这样一般就能解决 IE 浏览器不兼容的问题了。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值