嘿,我正在使用来自React导航的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} />
),
}}
/>
我假设你正在使用React导航中的底部选项卡导航器。正如在文档中提到的,您可以覆盖onPress
方法并将其导航到所需的选项卡。这些可以在Tab.navigator
的screenOptions
prop或Tab.Screen
的options prop下指定。如果你还需要我的帮助,请告诉我。
function MyTabBar({ navigation }) {
return (
<Button
title="Go somewhere"
onPress={() => {
// Navigate using the `navigation` prop that you received
navigation.navigate('SomeScreen');
}}
/>
);
}