Импортируйте пользовательский компонент в React с помощью response-select и вылетает с ошибкой Error: Minified React error # 188

Я разрабатываю собственную библиотеку компонентов в React (16.4) и Webpack 4. Конфигурация извлекается и импортируется в другой проект с помощью git + ssh: //[email protected] .... на package.json.

Только один компонент не работает, когда я использовал эту библиотеку в другом проекте, это разработка ввода select с помощью response-select (Джед Ватсон), и она вылетает при нажатии.

Все приложение вылетает, и у меня такая ошибка:

Uncaught Error: Minified React error #188; visit https://reactjs.org/docs/error-decoder.html?invariant=188 for the full message or use the non-minified dev environment for full errors and additional helpful warnings.

Сообщение по указанной выше ссылке:

Unable to find node on an unmounted component.

Теперь моя проблема связана с конфигурацией моего веб-пакета, но я не нахожу решений, чтобы исправить это.

Последняя надежда с сообществом ...

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
745
2

Ответы 2

У меня была аналогичная ситуация - я разрабатываю библиотеку нестандартных компонентов и импортирую ее во внешний проект. У меня были проблемы с react-bootstrap, react-transition-group и другими внешними библиотеками, которые динамически монтируют / размонтируют элементы DOM в продакшене; минимизированная ошибка реакции № 188 приведет к сбою производственных сборок. Вот как я решил это в конфигурации нашего веб-пакета в разделе module.exports (как dev, так и prod):

alias: {
  // Support React Native Web
  // https://www.smashingmagazine.com/2016/08/a-glimpse-into-the-future-with-react-native-for-web/
  "react-native": "react-native-web",
  react: path.resolve("./node_modules/react"),
  "react-dom": path.resolve("./node_modules/react-dom"),
  "react-transition-group": path.resolve(
    "./node_modules/react-transition-group"
  )
}

Это должно переопределить любые другие экземпляры этих конкретных библиотек во всех зависимостях; каждый раз, когда они импортируются / используются, они вынуждены использовать версию, указанную в моем проекте в package.json. Имейте в виду, что я использую Webpack 3, поэтому исправление для Webpack 4 может быть другим.

Спасибо, Аби.

Я просто решил это другим способом. Я добавляю всю библиотеку в "externals" в конфигурацию моего веб-пакета следующим образом:

externals: [
  'react-select': {
     root: 'ReactSelect',
     commonjs2: 'react-select',
     commonjs: 'react-select',
     amd: 'react-select',
  },
]

Другие вопросы по теме