web-dev-qa-db-fra.com

React.default.memo n'est pas une fonction (React-Native) wrapWithConnect

Je reçois ceci l'erreur

_react.default.memo n'est pas une fonction

et wrapWithConnect.
C'est un react-native projet et cela a bien fonctionné avant d'utiliser la fonction connect pour connecter ma répartition dans mon composant react:

Versions du package:

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

code

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

export default connect(null, mapDispatchToProps)(Login)
24
phaseharry

J'ai eu le même problème et j'ai changé la version de react-redux à 6.0.1 au lieu d'utiliser une version plus récente, et le problème a été résolu.

Veuillez changer de version en exécutant la commande suivante:

npm install [email protected].

La version de mon projet est supérieure à 16.5.0 mais je ne sais pas si cela a également un impact ou non.

26
moi paslui

Eu exactement la même erreur. Réalisé que ce n'est pas dû à des erreurs de syntaxe, mais à la compatibilité de la version react-redux. Une fois que j'ai exécuté la vérification de fil, cela m'a donné plusieurs messages que "react-redux#react@^16.8.4 ne satisfait pas la correspondance trouvée de [email protected]".

Expo est React 16.5.0 tandis que React-Redux attend React Version 16.8.4. Comme j'ai répondu, l'installation de react-redux 6.0.0 a fonctionné pour moi. La tentative de modification de tout autre package a provoqué l'apparition d'erreurs supplémentaires

6
Deluxe Grove

Essayez d'utiliser React 16.6.0 au lieu de 16.5.0

5
Yossi

C'est un problème avec expo.Essayez d'effacer le cache expo en utilisant cette commande

expo r -c

4
jyotishman saikia

Essayez de mettre à jour vos dépendances.

J'ai le même problème et j'utilise npm-check-updates .

Voici un journal de vérification des mises à jour:

 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.
2
pcs980

Si vous vous sentez perdu et sans abri en essayant de mettre en œuvre une application React-Native à l'intérieur de l'Expo, ne vous inquiétez pas, mon ami, vous n'êtes pas seul.

J'ai eu ce problème et j'ai constaté que:

  • expo 32.0 ne supporte pas react 16.8

  • react-redux 7.1 et sur demande react 16.8

J'ai pu le faire fonctionner avec cet ensemble de versions:

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

Vous pouvez les remplacer dans votre package.json, alors vous devriez faire:

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

Afin de supprimer les versions précédentes de node_modules et du cache Expo.

2

Pour combiner les deux réponses qui l'ont résolu pour moi:

  1. Supprimez le nouveau react-redux: yarn remove react-redux
  2. Installez l'ancienne version de react-redux: yarn add [email protected]
  3. Vider le cache expo: expo r -c

Cela fera l'affaire.

1
Tomer Almog