5

当我用...运行模拟器时

react-native run-ios

...我在终端中看到一条消息“TabNavigator 已弃用。请使用 createBottomTabNavigator ...”

但是,我不认为 TabNavigator 已被弃用,并且我认为 createBottomTabNavigator 通常不存在于网络上或现实中。除此之外,一切都很好!除了我无法运行我的应用程序。因为我收到这个红屏错误,表明 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:

终端输出显示 TabNavigator 已弃用

4

4 回答 4

7

得到同样的错误

修复 =

change import { TabNavigator } from 'react-navigation'

import { createBottomTabNavigator } from 'react-navigation'

...

const MainNavigator = createBottomTabNavigator({
  welcome: { screen: WelcomeScreen },
  auth: { screen: AuthScreen },
});
于 2018-05-05T11:28:36.040 回答
0

在你的 package.json 文件中检查你的反应导航版本。如果您的反应导航是 v2 或 v3,那么这将不起作用。您必须使用 createBottomTabNavigator https://reactnavigation.org/docs/en/tab-navigator.html

于 2018-12-16T09:28:11.877 回答
0

是的,它已被弃用。使用@dazzle 所说的话。还有一个事实证明是一个常见的错误是像我这样的新手将它包含MainNavigator在视图标签中。不要那样做。而不是这个

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

做这个

return <MainNavigator/>
于 2018-10-08T07:12:39.213 回答
0

TabNavigator 在 React Navigation v1 中没有被弃用。但是,因为我像这样在 package.json 中引用了 react-navigation ......

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

我正在提取最新的代码,并且在某个时候(大概是昨天),这个参考开始引入 React Navigation 的 v2,而不是 v2,导致奇怪的“弃用”消息以及我的问题中提到的错误。

此处提供了解决方案: https ://github.com/expo/expo/issues/1596#issuecomment-378424966

于 2018-04-03T23:09:36.773 回答