Как отключить компонент реакции для IE - PullRequest
2 голосов
/ 13 марта 2020

Можно ли полностью отключить загрузку библиотеки узлов в IE?

Я использую React. js и библиотеку с именем Nivo ("@ nivo / line": "^ 0.61 .1 ") чтобы нарисовать график. Nivo использует d3 для рисования графиков, а d3 загружается неправильно при использовании IE11. В консоли выводится сообщение об ошибке «const необходимо инициализировать», вызванное отсутствием шкалы d3 в ES5. Мы используем babel polyfill ("@ babel / polyfill": "^ 7.8.3") для переноса нашего исходного кода в ES5, который работает нормально, но модули node_modules не передаются. Я пытался изменить модуль сборки webpack, чтобы включить библиотеку d3-scale в транспилирование, используя различные варианты следующего, но пока это не увенчалось успехом:

exclude: [
/node_modules\/(?!d3-scale)/,
/\.stories\.js$/,
/\.test\.js$/,
],

Возможный обходной путь - отключить график для IE полностью, так что библиотека Nivo вообще не загружается, но продолжает работать для других браузеров. Возможно ли это?

Если у кого-то есть какие-либо предложения по решению этой проблемы, пожалуйста, сообщите мне.

Вот фрагмент кода нашего графика:

import React, {Component} from 'react';
import {ResponsiveLine} from '@nivo/line';
import {formatNumbers} from 'Utils/formatNumbers';

...

render() {
    return (
      <>
        { this.props.data.length > 0 ? (
          <ResponsiveLine
           ...
          />
...

Это компонент затем используется другим компонентом.

1 Ответ

0 голосов
/ 16 марта 2020

Я временно исправил эту проблему, используя более старую версию библиотеки nivo / line, которая использует более старую версию d3-scale. Это не идеальное решение, но оно работает для меня, пока у меня нет времени, чтобы исправить это должным образом. FYI версия 0.55.0 работает для меня.

...