React.default.memo не является функцией (React-Native) wrapWithConnect

Я получаю эту ошибку

_react.default.memo не является функцией

и wrapWithConnect.
Это react-native проект по react-native и он работал нормально до того, как я использовал функцию соединения для подключения своей отправки к моему компоненту реакции:

Версии пакета:

    "react": "16.5.0",
    "react-redux": "^6.0.1",
    "redux": "^4.0.1",
    "redux-logger": "^3.0.6",
    "redux-thunk": "^2.3.0",

код

const mapDispatchToProps = dispatch => {
 return { 
  sendEmail: (email, navigateMap) => dispatch(sendEmail, navigateMap))

export default connect(null, mapDispatchToProps)(Login)

Ответ 1

У меня была та же проблема, и я изменил версию react-redux на 6.0.1 вместо того, чтобы использовать более новую версию, и проблема была решена.

Пожалуйста, измените версию, выполнив следующую команду:

npm install [email protected].

Версия моего проекта больше 16.5.0, но я не уверен, оказывает ли это влияние или нет.

Ответ 2

Была эта точно такая же ошибка. Реализовано это не из-за синтаксических ошибок, а из-за совместимости версии response-redux. После того как я запустил проверку пряжи, он дал мне несколько сообщений о том, что "response-redux#[email protected]^16.8.4 не удовлетворяет найденному соответствию [email protected]".

Экспо реагирует на 16.5.0, а Реакция-Редукс ожидает реагирующую версию 16.8.4. Как ответил мой, у меня сработала установка response-redux 6.0.0. Попытка изменить любой другой пакет привела к появлению еще большего количества ошибок

Ответ 3

Это проблема с expo. Попробуйте очистить кеш expo с помощью этой команды

expo r -c

Ответ 4

Попробуйте использовать 16.6.0 вместо 16.5.0.

Ответ 5

Попробуйте обновить ваши зависимости.

У меня та же проблема, и я использую npm-check-updates.

Вот журнал проверки обновлений:

 expo               ^32.0.0  →  ^32.0.6
 react               16.5.0  →   16.8.6
 react-navigation    ^3.6.1  →   ^3.7.1
 babel-preset-expo   ^5.0.0  →   ^5.1.1

Run npm install to install new versions.

Ответ 6

В последней версииact-redux 7.x требуется React 16.8.3 или более поздняя версия (https://react-redux.js.org/introduction/quick-start). Проверьте файл package.json, убедитесь, что ваш React обновлен, или измените его на 16.8.3 и запустите npm install. Это исправило это.

Ответ 7

Если вы чувствуете себя потерянным и беззащитным при попытке внедрить современное приложение React-Native в Expo, не волнуйтесь, мой друг, вы не одиноки.

У меня была эта проблема, и я обнаружил, что:

  • expo 32.0 не поддерживает react 16.8

  • react-redux 7.1 и на react 16.8

Я смог заставить его работать с этим набором версий:

"expo": "^32.0.0",
"react": "16.5.0",
"react-redux": "^6.0.1",

Вы можете заменить их в вашем package.json, тогда вы должны сделать:

> rm -rf node_modules
> [npm|yarn] install
> expo r -c 

Для того, чтобы удалить предыдущие версии из кеша node_modules и Expo.

Ответ 8

Чтобы объединить два ответа, которые решили это для меня:

  1. Удалите новый реакт-редукс: yarn remove react-redux
  2. Установите более старую версию yarn add [email protected]: yarn add [email protected]
  3. Очистить кэш экспо: expo r -c

Это сделает свое дело.