Ошибка React Bundle: ошибка типа: невозможно прочитать свойство ReactCurrentOwner неопределенного

Для развернутых версий моего приложения я добавил следующий код в свою конфигурацию Webpack, чтобы получить React из пакета поставщика, который я обслуживаю:

externals: {
   react: 'vendor.React',
   'react-dom': 'vendor.ReactDOM',
},

Обычно это работает, но по какой-то причине теперь я получаю сообщение об ошибке:

Type Error: cannot read property 'ReactCurrentOwner' of undefined

Кто-нибудь знает, что это за ошибка или почему мой мини-пакет реакции выдает эту ошибку?

Реагировать Версия 16.5.2


person Frenchy    schedule 24.09.2018    source источник
comment
Хм, попробуй проверить обновления? github.com/chenglou/react-motion/issues/447 npm i -g npm-check-updates npm-check-updates -u npm install Я знаю, что это не тот пакет, который вы используете, но стоит попробовать?   -  person Demon    schedule 24.09.2018
comment
Я попробовал это, изменил свой package.json и снял блокировку пакета. Неудачно. Если это поможет, я объединяю две разные версии в отдельный микросервис, из которого затем обслуживаю пакет.   -  person Frenchy    schedule 24.09.2018
comment
Хмммм, потерпите меня в этом (я занимаюсь исследованием этого вопроса).... Я думаю, проблема в том, что вам нужно указать версию реакции и реакции-дома... и вы помещаете эту версию в файл package. json указывает вашу версию, которая 16.5.2, или вы можете что-то конкретное, например github.com /apollographql/react-apollo/issues/   -  person Demon    schedule 24.09.2018
comment
@Demon спасибо за попытку помочь. Я использовал версию React CDN, которую я скачал локально в свою файловую систему, так как я пытался обслуживать две разные версии React из этого микросервиса. Оказывается, в версии CDN или React-Dom есть операторы require: require(react); Эти требования разрешались в мои node_modules, у которых была более низкая версия реакции. Исправление состояло в том, чтобы вручную отредактировать их, чтобы они указывали на версию React для локальной файловой системы, которую я скачал.   -  person Frenchy    schedule 25.09.2018


Ответы (1)


Спасибо @Demon за попытку помочь. Окончательное решение было следующим:

Я использовал версию React CDN, которую я скачал локально в свою файловую систему, так как я пытался обслуживать две разные версии React из этого микросервиса. Оказывается, в версии CDN или React-Dom есть операторы require:

var react = require("react");

Эти требования разрешались в мои node_modules, у которых была более низкая версия реакции. Исправление состояло в том, чтобы вручную отредактировать их, чтобы они указывали на версию React для локальной файловой системы, которую я скачал.

var react = require("./react.development.js")
person Frenchy    schedule 25.09.2018
comment
Замечательно! Рад, что смог быть чем-то полезен! - person Demon; 25.09.2018