React + Redux: ошибка, при которой компонент отключается при рендеринге только при минимизации кода - PullRequest
0 голосов
/ 18 мая 2018

Среда: React 16.3, Redux 3.7.2, Webpack 4.6.0, плагин UglifyJS для Webpack 1.2.5.

Я пытаюсь устранить ошибку, которая возникает только при сборке с NODE_ENV = 'production' (которая включает минификацию с помощью плагина UglifyJS webpack через mode: 'production').

Иерархия компонентов выглядит примерно (за вычетом div s) примерно так: Sidebar SidebarSection (array) SidebarSubSection (array) Field (e.g. InputField)

Оба компонента SidebarSection и SidebarSubSection создаются с уникальными атрибутами key. Когда запускается обработчик события onChange для поля, он обновляет модель с помощью редукторного редуктора, который запускает повторную визуализацию боковой панели и дочерних компонентов. В разработке все это работает нормально, но в производстве (с минификацией) мы получаем ошибки, вызванные отключением / повторным подключением SidebarSubSection вместе со всеми дочерними полями.

Согласно https://reactjs.org/docs/reconciliation.html этого не должно происходить, учитывая, что типы в дереве не меняются и что мы используем ключи для массивов компонентов.

Не помогли такие вещи, как keep_classnames в параметрах сжатия uglify.

Моя конкретная конфигурация для uglifyjs под optimization: minimizer: [ new UglifyJsPlugin({ sourceMaps: true, uglifyOptions: { ecma: 8, compress: { dead_code: true, unused: true, inline: false, global_defs: { 'process.env.NODE_ENV': 'production' } } } }) ]

Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...