当我用...运行模拟器时
react-native run-ios
...我在终端看到一条消息“TabNavigator已被弃用。请使用createBottomTabNavigator ...”
但是,我不认为TabNavigator已被弃用,我认为webBadomTabNavigator不存在于网上或现实中。除此之外,一切都很好!除了我无法运行我的应用程序。因为我得到这个红屏错误,暗示React Navigation有些不对劲:
undefined is not a function (near '...(0 , _reactNavigation.TabNavigator)...')
其他上下文:这些问题在我推出了一个expo应用程序之后开始出现,然后尝试通过创建一个新应用程序(create-react-native-app)然后移动我的自定义来重新构建它在预先出现状态代码进入新应用程序,从弹出之前的git提交。我还必须在模拟器中更新Expo客户端。我不确定这是否是相关信息,但在我退出之前,我没有看到这条消息表明TabNavigator已被弃用。
React Navigation文档未指出TabNavigator可能已被弃用:https://reactnavigation.org/docs/tab-based-navigation.html
这是终端输出,其中包含一条消息,表明不推荐使用TabNavigator:
答案 0 :(得分:4)
得到同样的错误
修复=
change import { TabNavigator } from 'react-navigation'
到
import { createBottomTabNavigator } from 'react-navigation'
...
const MainNavigator = createBottomTabNavigator({
welcome: { screen: WelcomeScreen },
auth: { screen: AuthScreen },
});
答案 1 :(得分:0)
在React Navigation的v1中不推荐使用TabNavigator。但是,因为我在package.json中引用了react-navigation,就像这样......
^([^\"]+(\".+\")([^\"']+)('.+'))$
我正在拉最新的代码,并且在某些时候(大概是昨天)这个引用开始拉入React Navigation的v2而不是v2,导致奇怪的“弃用”消息以及我的问题中提到的错误。 / p>
此处提供了解决方案: https://github.com/expo/expo/issues/1596#issuecomment-378424966
答案 2 :(得分:0)
是,已弃用。使用@dazzle所说的话。事实证明,另一个常见的错误是像我这样的新手在视图标签中包含了MainNavigator
。不要那样做代替这个
return <View><MainNavigator/><View/>
执行此操作
return <MainNavigator/>
答案 3 :(得分:0)
在package.json文件中检查您的反应导航版本。如果您的反应导航是v2或v3,则此功能将无效。您必须使用createBottomTabNavigator https://reactnavigation.org/docs/en/tab-navigator.html