反应底部栏上的导航停止后退按钮行为

Luc*_*ner 6 react-native react-native-navigation react-navigation react-navigation-bottom-tab

嘿,我正在使用 React Navigation 中的 createBottomTabNavigator(),并且我有一个自定义顶栏,我用自己的状态更新它。问题是,当我单击选项卡时,每次导航都会调用侦听器,因此如果您转到屏幕 2,则顶部栏会进入错误的状态,顶部栏会更改为屏幕 2。当我按下顶部栏后退按钮时,它会返回到屏幕 1 并将顶部栏更改为屏幕 1 顶部栏。现在,如果我使用底部栏选项卡而不是使用顶部栏选项卡向后导航,它会使顶部栏远离屏幕 2。所以我的问题是,如果我按底部栏,它会导航回初始屏幕,我是否可以以某种方式禁用它1.

 <Tab.Screen
      listeners={() => {
              switchTab(0);
            }}
            name="Input"
            children={() => (
              <SuchStackContainer
                ref={suchStackRef}
                switchStack={switchStack}
                listings={listings}
                setListings={setListings}
              />
            )}
            options={{
              tabBarLabel: 'Suche',
              tabBarIcon: ({color, size}) => (
                <Ionicons name="car" color={color} size={size} />
              ),
            }}
          />
Run Code Online (Sandbox Code Playgroud)

Rah*_*ana 3

我假设您正在使用React Navigation 中的底部选项卡导航器正如文档中提到的,您可以覆盖onPress方法并将其导航到所需的选项卡。screenOptions这些可以在prop ofTab.navigator或 options prop of下指定Tab.Screen。如果您仍然需要我的帮助,请告诉我

function MyTabBar({ navigation }) {
  return (
    <Button
      title="Go somewhere"
      onPress={() => {
        // Navigate using the `navigation` prop that you received
        navigation.navigate('SomeScreen');
      }}
    />
  );
}
Run Code Online (Sandbox Code Playgroud)