React.default.memo не является функцией (React-Native) wrapWithConnect - PullRequest
18 голосов
/ 11 апреля 2019

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

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

и wrapWithConnect.
Это проект 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)

Ответы [ 7 ]

21 голосов
/ 11 апреля 2019

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

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

npm install react-redux@6.0.1.

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

5 голосов
/ 13 апреля 2019

Была эта точно такая же ошибка.Понял, что это не из-за синтаксических ошибок, а из-за совместимости с реакцией-редукса.После того как я запустил проверку пряжи, он дал мне несколько сообщений о том, что "react-redux#react@^16.8.4 не удовлетворяет найденному совпадению activ@16.5.0".

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

4 голосов
/ 26 апреля 2019

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

expo r -c

3 голосов
/ 11 апреля 2019

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

.
1 голос
/ 07 июня 2019

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

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

Это поможет.

1 голос
/ 13 апреля 2019

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

У меня та же проблема, и я использую 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.
0 голосов
/ 05 июня 2019

Если вы чувствуете себя потерянным и беззащитным при попытке внедрить современное приложение 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.

...