更新:自此问题/答案以来,create-react-app polyfill 方法和文档已更改。如果您想支持像 ie11 这样的旧浏览器,您现在应该包括react-app-polyfill
( here )。但是,这仅包括“ ...最低要求和常用语言功能”,因此对于不太常见的 ES6/7 功能(例如Array.includes
),您仍然希望使用以下方法之一
这两种方法都有效:
1. 从 react-app-polyfill 和 core-js 手动导入
安装react-app-polyfill和core-js (3.0+):
npm install react-app-polyfill core-js
或者 yarn add react-app-polyfill core-js
创建一个名为(类似于)polyfills.js 的文件并将其导入到您的根 index.js 文件中。然后导入基本的 react-app polyfill,以及任何特定的必需功能,如下所示:
/* polyfills.js */
import 'react-app-polyfill/ie11';
import 'core-js/features/array/find';
import 'core-js/features/array/includes';
import 'core-js/features/number/is-nan';
/* index.js */
import './polyfills'
...
2.Polyfill服务
使用polyfill.io CDN 通过将此行添加到 index.html 来检索自定义的、特定于浏览器的 polyfill:
<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=default,Array.prototype.includes"></script>
请注意,我必须明确请求该Array.prototype.includes
功能,因为它不包含在默认功能集中。