web-dev-qa-db-fra.com

undefined n'est pas un objet (évaluation de 'RNGestureHandlerModule.State'

J'ai installé react-navigation dans mon projet React Native. C'est un projet de démarrage qui n'a pas de code. Mais lors de l'exécution du projet, je suis confronté à une erreur comme celle-ci. 

Voici mon code de navigation

import { createStackNavigator } from 'react-navigation';

import Home from './screens/Home';
import WeatherDetail from './screens/WeatherDetail';


const Navigation = createStackNavigator({
  Home: { screen: Home },
  WeatherDetail: {
  screen: WeatherDetail
 } 
});

export default Navigation;

Et voici les codes App.js

 import Navigator from './Router';


 export default class App extends Component {
   render() {
     return (
       <View style={styles.container}>
         <Navigator />
       </View>
     );
    }
  }

Si je supprime le composant de navigateur de App.js et le remplace par un Texte, l'application s'exécute sans erreur. 

19
Ish Man
  1. supprimer node_modules et package-lock.json 
  2. npm install
  3. npm install --save react-navigation
  4. npm install --save react-native-gesture-handler
  5. react-native link
61
Amiri Houssem

Si vous utilisez react-link pour lier vos dépendances:

  1. Ouvrez votre fichier podfich ios et supprimez toutes vos dépendances liées: pod 'xxxxxxx',: path => '../node_modules/xxxxx
  2. Fermer Xcode
  3. Dans votre dossier/ios, lancez "pod update".
  4. Dans votre source de projet, exécutez le lien "réactif natif"
  5. Ouvrir Xcode et Nettoyer le dossier de construction à partir du menu Xcode -> Produit
  6. Exécutez votre application depuis Xcode
  7. Associez manuellement la dépendance "react-native-gesture-handler" dans votre projet Xcode en suivant les étapes décrites dans la documentation: https://facebook.github.io/react-native/docs/linking-libraries-ios
  8. Maintenant, lancez votre application à partir de Xcode, ça devrait aller.
4
hicham naimi

peut-être que quelqu'un vient ici parce que c'est le même problème que moi.

j'ai cette erreur parce que j'utilise la version 3.x de react-navigation. Dans cette version, stackNavigator est remplacé par createStackNavigator et doit utiliser createAppContainer(createStackNavigator).

je le répare juste comme mr.amiri a dit mais je ne supprime pas mon node_module je viens de suivre l’étape 3 - 5

2
jemjov

Commencez par supprimer node_modules et package-lock.json et exécutez npm install. Après avoir installé le package react-navigation dans votre projet React Native. Vous devez installer react-native-gesture-handler. Si vous utilisez Expo, vous n’avez rien à faire ici, c’est inclus dans le SDK. Autrement: 

npm install react-native-gesture-handler

Et enfin, liez la dépendance de geste en tant que:

react-native link react-native-gesture-handler

Cette réponse est basée sur le document React Navigation .

2
Ali Hesari

peut être sa fin . solution temporaire déclasser la version de réagir navigation:
1- dissocier et désinstaller react-navigation et le gestionnaire 
2- ajouter "react-navigation": "^ 2.18.2" à package.json
3- supprime le dossier node_modules
4 min. I
5- réactif-lien natif

0
Jamal

Même si react-native-gesture-handler est présent dans le dossier node_modules, nous devons l’ajouter au chemin ou le réinstaller. Ensuite, liez-vous avec du code natif.

1) npm install --save react-native-gesture-handler

success Saved 1 new dependency.
info Direct dependencies
└─ [email protected]
info All dependencies
└─ [email protected]

2) react-native link

rnpm-install info Linking react-native-gesture-handler ios dependency 
rnpm-install info Platform 'ios' module react-native-gesture-handler has been
 successfully linked 
rnpm-install info Linking react-native-gesture-handler Android dependency 
rnpm-install info Platform 'Android' module react-native-gesture-handler has
 been successfully linked

3) react-native run-Android ou react-native run-ios

0
Harikrishnan

Comme je ne suis pas autorisé à commenter, je le poste ici. C'est la réponse de @Amiri Houssem, mais j'ajoute une dernière chose:

  1. supprimer node_modules et package-lock.json
  2. npm installer
  3. npm install --save react-navigation
  4. npm install --save react-native-gesture-handler
  5. lien réactif natif

S'il y a une erreur même après ces 5 étapes, vérifiez Android/settings.gradle et changez cette ligne en ceci: 

project(':react-native-gesture-handler').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-gesture-handler/Android')
0
Burim Syla