web-dev-qa-db-de.com

Ist TabNavigator veraltet?

Wenn ich den Simulator mit ...

react-native run-ios

Im Terminal wird die Meldung angezeigt, dass TabNavigator veraltet ist. Verwenden Sie den Befehl createBottomTabNavigator.

Ich glaube jedoch nicht, dass TabNavigator veraltet ist, und ich glaube nicht, dass createBottomTabNavigator im Web oder in der Realität allgemein existiert. Sonst ist alles gut! Außer ich kann meine App nicht ausführen. Weil ich diesen Red-Screen-Fehler erhalte, der darauf hindeutet, dass etwas mit React Navigation nicht stimmt:

undefined is not a function (near '...(0 , _reactNavigation.TabNavigator)...')

Zusätzlicher Kontext: Diese Probleme traten auf, nachdem ich eine Expo-App ausgeworfen und dann versucht hatte, sie in ihrem vorab ausgeworfenen Zustand wiederherzustellen, indem ich eine neue App (create-react-native-app) erstellte und dann meinen benutzerdefinierten Code in die verschob Neue App, von einem Git Commit vor dem Auswerfen. Ich musste auch den Expo-Client im Simulator aktualisieren. Ich bin nicht sicher, ob dies relevante Informationen sind, aber bevor ich ausgeworfen habe, wurde diese Meldung nicht angezeigt, die darauf hinweist, dass TabNavigator veraltet ist.

Die React Navigation-Dokumente geben keinen Hinweis darauf, dass TabNavigator möglicherweise veraltet ist: https://reactnavigation.org/docs/tab-based-navigation.html

Hier ist die Terminalausgabe mit einer Meldung, die angibt, dass TabNavigator veraltet ist:

 terminal output says TabNavigator is deprecated

3
arnoldbird

TabNavigator ist in Version 1 von React Navigation nicht veraltet. Da ich aber in meinem package.json wie folgt auf die reakt-navigation verwiesen habe ...

"react-navigation": "git+https://github.com/react-community/react-navigation.git",

Ich habe gerade den neuesten Code gezogen, und irgendwann (vermutlich gestern) zog diese Referenz in Version 2 von React Navigation statt in Version 2, was zu der seltsamen "veralteten" Nachricht und auch zu dem in meiner Frage genannten Fehler führte.

Die Lösung wurde hier bereitgestellt: https://github.com/expo/expo/issues/1596#issuecomment-378424966

0
arnoldbird

Ich habe den gleichen Fehler

Fix =

change import { TabNavigator } from 'react-navigation'

zu

import { createBottomTabNavigator } from 'react-navigation'

...

const MainNavigator = createBottomTabNavigator({
  welcome: { screen: WelcomeScreen },
  auth: { screen: AuthScreen },
});
3
Dazzle

Ja, es ist veraltet. Verwenden Sie, was @dazzle gesagt hat. Eine weitere Sache, die sich als häufiger Fehler herausstellt, ist, dass Neulinge wie ich diese MainNavigator in einem View-Tag enthalten. Tu das nicht An Stelle von

return <View><MainNavigator/><View/>

mach das

return <MainNavigator/>
0
Koushik Das

Überprüfen Sie Ihre reale Navigationsversion in Ihrer package.json-Datei. Wenn Ihre Reaktionsnavigation v2 oder v3 ist, funktioniert dies nicht. Sie müssen createBottomTabNavigator https://reactnavigation.org/docs/de/tab-navigator.html verwenden.

0
Piyush Rana