5

我正在使用 React Navigation v5,@react-navigation/bottom-tabs我的标签看起来像这样。

<NavigationContainer>
  <Tab.Navigator>
    <Tab.Screen name="Home" component={HomeScreen} />
    <Tab.Screen name="Modal" component={ModalScreen} />
    <Tab.Screen name="Settings" component{SettingsScreen} />
  </Tab.Navigator>

我想在Home & Settings选项卡上打开屏幕,但在Modal选项卡上,我想打开一个模式,为此,使用 React Navigation v4,可以使用tabBarOnPresswhich 将运行回调,但在 React Navigation v5 中不可用, tabBarOnPressReact Navigation v5有什么替代方案吗?

任何帮助,将不胜感激!

4

1 回答 1

10

您需要使用tabPress事件:

<Tabs.Screen
  name="Modal"
  component={ModalScreen}
  listeners={{
    tabPress: e => {
      // Prevent default action
      e.preventDefault();
    },
  }}
/>

https://reactnavigation.org/docs/bottom-tab-navigator#events

https://reactnavigation.org/docs/navigation-events#listeners-prop-on-screen

于 2020-02-26T13:27:02.157 回答