Ich habe react-navigation in meinem React Native-Projekt installiert. Es ist ein Startprojekt, das keine Codes enthält. Aber während ich ein Projekt laufe, stoße ich auf solche Fehler.
Hier ist mein Navigationscode
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;
Und hier sind die App.js-Codes
import Navigator from './Router';
export default class App extends Component {
render() {
return (
<View style={styles.container}>
<Navigator />
</View>
);
}
}
Wenn ich die Navigatorkomponente aus der App.js entferne und sie durch ein Text ersetze, wird die Anwendung ohne Fehler ausgeführt.
npm install
npm install --save react-navigation
npm install --save react-native-gesture-handler
react-native link
Wenn Sie mit reaktiver Verknüpfung Ihre Abhängigkeiten verknüpfen:
Aus dem offiziellen Dokument:
Wenn Sie React Native> = 0.60 verwenden, müssen Sie zuerst das Autolinking für den Gesten-Handler für React-Native deaktivieren. Um das Autolinking für diesen Gesten-Handler zu deaktivieren, erstellen Sie eine Datei react-native.config.js Datei im Stammverzeichnis Ihres Projekts mit folgendem Inhalt:
module.exports = {
dependencies: {
'react-native-gesture-handler': {
platforms: {
Android: null,
ios: null,
},
},
},
};
Wenn Sie React 0.60 verwenden, lassen Sie dieses offizielle Dokument einfach aus. Führen Sie die folgenden Schritte aus:
rm react-native.config.js
falls vorhandenreact-native link react-native-gesture-handler
cd ios && pod install && cd ..
react-native run-ios
Ich bekomme den gleichen Fehler auf ios von RN v0.60
Folgendes hat für mich funktioniert:
cd ios
pod install
vielleicht kommt hier jemand her, das gleiche problem wie ich.
ich habe diese Fehlermeldung erhalten, weil ich reag-navigation Version 3.x verwende. In dieser Version ändert sich stackNavigator
in createStackNavigator
und sollte createAppContainer(createStackNavigator)
verwenden.
ich verstehe es genau wie mr.amiri sagte aber ich lösche mein node_module nicht
Entfernen Sie zunächst node_modules
und package-lock.json
und führen Sie npm install
..__ aus. Nach der Installation des react-navigation
-Pakets in Ihrem React Native-Projekt Sie sollten den reaktionsnativen Gestenhandler installieren. Wenn Sie Expo verwenden, müssen Sie hier nichts tun, es ist im SDK enthalten. Andernfalls:
npm install react-native-gesture-handler
Und schließlich verknüpfen Sie die Gestenabhängigkeit als:
react-native link react-native-gesture-handler
Diese Antwort basiert auf dem Dokument React Navigation .
Ich antworte, weil keine der obigen Antworten für mich relevant war.
Ich habe diesen Fehler erhalten, weil VSCode beim Hinzufügen eines Elements import { TouchableOpacity } from 'react-native-gesture-handler'
Automatisch <TouchableOpacity>
Als Abhängigkeit in meine Datei eingefügt hat.
Geben Sie die zuletzt bearbeiteten Dateien erneut an, für den Fall, dass Sie keine Importanweisung erwarten!
möglicherweise ist es seine späte . Temporäre Lösung zum Downgrade der Version von reag navigation:
1- Verknüpfung und Deinstallation von respons-navigation und des Handlers aufheben
2- füge "reag-navigation": "^ 2.18.2" zu package.json hinzu
3- Ordner "node_modules" entfernen
... 16 npm i
5- reaktiver Link
Das hat auch bei mir gut funktioniert.
1) npm install react-navigation
2) npm install react-native-gesture-handler
3) npm intstall
4) react-native link
deinstalliere die App
5) react-native run-Android
Führen Sie die folgenden Befehle in der Eingabeaufforderung aus (Als Administrator ausführen)
npm install react-navigation
npm install react-native-gesture-handler
npm intstall
react-native link
Durch eine Neuinstallation der Anwendung wird das Problem behoben.
Ich kämpfte damit und keine der obigen Antworten funktionierte für mich. Folgendes musste ich tun:
ios
vollständig.node_modules
Ordner und package-lock.json
.react-native eject
, um Ihre nativen Code-Ordner neu zu erstellen.npm install
react-native link
npm run start -- --reset--cache
react-native run-ios
Wenn Sie eine Konfiguration mit Podfile in ios verwenden. Befolgen Sie diese Schritte:
pod 'RNGestureHandler', :path => '../node_modules/react-native-gesture-handler'
im <react-native-project>/ios/Podfile
.<react-native-project>.xcworkspace
Hinzufügen RNGestureHandler.xcodeproj
in Bibliotheken (Klicken Sie mit der rechten Maustaste auf den Bibliotheksordner und wählen Sie "Dateien hinzufügen zu") aus node_modules/react-native-gesture-handler/ios
.libRNGestureHandler.a
in (Build-Phasen) -> (Binary mit Bibliotheken verknüpfen).Auch wenn react-native-gesture-handler
im Ordner node_modules
vorhanden ist, müssen Sie ihn dem Pfad hinzufügen oder erneut installieren. Dann mit nativem Code verknüpfen.
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
oder react-native run-ios
sehen Sie sich Ihre native Reaction-Version an. Wenn Sie Version 0.60 verwenden, müssen Sie mit einem Jetifier auf AndroidX migrieren. Befolgen Sie die Schritte unter diesem Link https://github.com/mikehardy/jetifier
erfolgreich für mich :)
Da ich keine Kommentare abgeben darf, poste ich sie hier. Dies ist die Antwort von @Amiri Houssem, aber ich möchte noch etwas hinzufügen:
Wenn auch nach diesen 5 Schritten ein Fehler auftritt, überprüfen Sie Android/settings.gradle und ändern Sie diese Zeile folgendermaßen
project(':react-native-gesture-handler').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-gesture-handler/Android')
Ich habe dies in der CLI verwendet, um das Problem zu lösen
cd iOS
pod install
cd ..
react-native unlink react-native-gesture-handler