TabNavigator是否已弃用?

arn*_*ird 4 react-native react-navigation react-native-tabnavigator

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

react-native run-ios
Run Code Online (Sandbox Code Playgroud)

...我在终端中看到一条消息,指出“ TabNavigator已过时。请使用createBottomTabNavigator ...”

但是,我不认为TabNavigator已被弃用,我也不认为createBottomTabNavigator存在于Web或现实中。除此之外,一切都很好!除了我无法运行我的应用程序。因为我收到此红屏错误,提示React Navigation出现了问题:

undefined is not a function (near '...(0 , _reactNavigation.TabNavigator)...')
Run Code Online (Sandbox Code Playgroud)

其他情况:在我弹出一个expo应用程序之后,这些问题开始出现,然后尝试通过创建一个新应用程序(create-react-native-app)并将其自定义代码移至新应用,从git commit弹出之前。我还必须在模拟器中更新Expo客户端。我不确定这是否是相关信息,但是在退出之前,我没有看到此消息,表明不推荐使用TabNavigator。

React Navigation文档没有暗示可能不推荐使用TabNavigator:https : //reactnavigation.org/docs/tab-based-navigation.html

这是终端输出,其中包含一条消息,指示已弃用TabNavigator:

终端输出说不推荐使用TabNavigator

Daz*_*zle 5

得到了同样的错误

修复=

change import { TabNavigator } from 'react-navigation'
Run Code Online (Sandbox Code Playgroud)

至

import { createBottomTabNavigator } from 'react-navigation'
Run Code Online (Sandbox Code Playgroud)

...

const MainNavigator = createBottomTabNavigator({
  welcome: { screen: WelcomeScreen },
  auth: { screen: AuthScreen },
});
Run Code Online (Sandbox Code Playgroud)


arn*_*ird 0

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

"react-navigation": "git+https://github.com/react-community/react-navigation.git",
Run Code Online (Sandbox Code Playgroud)

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

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