ReactのInternetExplorer対応
Page content
Reactで作ったページがIEで表示できなかった。
概要
InternetExplorer11が、JavascriptのES2015(ES6)記法に対応していないため。
マイクロソフトも使わないでくれと言うようなレガシーブラウザですが、今なお結構なシェアを誇っているため、対応せざるを得ないケースも多いかと。
対策
polyfillを使います。
polyfillは、「隙間を埋める」ような意味の言葉で、「存在しないメソッドを、既存メソッドで擬似的に再現する」ようなもの。
IEが対応していないES6のメソッドも、ES6以前のメソッドを用いて再現してくれます。
作業
react-app-polyfillと、@babel/polyfillを使います。
(僕の場合、前者だけだと表示されず。)
まずpackage-jsonのあるディレクトリでpolyfillをインストール。
$ npm install react-app-polyfill --save
$ npm install @babel/polyfill --saveこれでpackage-jsonに追加されます。
続いて、index.jsファイルにimportします。
import '@babel/polyfill';
import "react-app-polyfill/ie9";
import React from "react";
import ReactDOM from "react-dom";
...
import "react-app-polyfill/ie11"とするとIE11に、
import "react-app-polyfill/ie9"とするとIE9〜11に対応してくれる。
再度ビルドすると、無事IEから見ることが出来ました。
おわり
弊社の標準ブラウザもInternet Explorer!!!()


