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.
npm install
npm install --save react-navigation
npm install --save react-native-gesture-handler
react-native link
Si vous utilisez react-link pour lier vos dépendances:
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
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 .
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
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
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:
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')