react-native - 在一个项目中使用 2 Drawer Navigator
问题描述
我有 2 个 DrawerNavigators,其中一个(PaymentHistoryDrawer)在 BottomTabNavigator 内。我将它们绑定到两个按钮 - 第一个用于 HamburgerMenu ,第二个用于付款历史记录中的 FilterButton 。
export const DrawerNavigator = () => (
<Drawer.Navigator drawerContent={(props) => <Sidebar {...props} />}>
<Drawer.Screen name={SCREEN_ROOT} component={BottomTabNavigator} />
</Drawer.Navigator>
);
export const DrawerPaymentHistoryNavigator = () => (
<PaymentHistoryDrawer.Navigator
drawerContent={PaymentHistorySidebar}
drawerPosition="right"
drawerStyle={{
zIndex: 0,
width: 300
}}
drawerType="front">
<PaymentHistoryDrawer.Screen
name={SCREEN_PAYMENT_HISTORY_DRAWER}
component={HistoryScreen}
options={{ title: 'My home' }}
/>
</PaymentHistoryDrawer.Navigator>
);
我对它们进行了不同的初始化,并将它们不同地绑定为汉堡菜单的“抽屉”,过滤器的“PaymentHistoryDrawer”。但是无论如何,当我单击底部选项卡中的汉堡菜单按钮时,同时有调用 PaymentHistoryDrawer 的 FilterButton,PaymentHistory 就会出来。为什么它们彼此相关?如何解开?
//this code is the beginning of the above written code
type DrawerParamList = {
[SCREEN_ROOT]: undefined;
};
type PaymentHistoryDrawerParamList = {
[SCREEN_PAYMENT_HISTORY_DRAWER]: undefined;
};
export type RootScreenNavigationProp = DrawerNavigationProp<
DrawerParamList,
'SCREEN_ROOT'
>;
export type PaymentHistoryScreenNavigationProp = DrawerNavigationProp<
PaymentHistoryDrawerParamList,
'SCREEN_PAYMENT_HISTORY_DRAWER'
>;
const Drawer = createDrawerNavigator<DrawerParamList>();
const PaymentHistoryDrawer =
createDrawerNavigator<PaymentHistoryDrawerParamList>();
将 ToggleDrawer 绑定到 FilterButton
export const FilterButton = () => {
const { toggleDrawer } =
useNavigation<PaymentHistoryScreenNavigationProp>();
return (
<FilterContainer onPress={toggleDrawer}>
<Image source={FilterIcon} />
<FilterText>Фильтры</FilterText>
</FilterContainer>
);
};
将 ToggleDrawer 绑定到 HamburgerMenuButton
const _Menu = () => {
const { toggleDrawer } = useNavigation<RootScreenNavigationProp>();
return <Icon onPress={toggleDrawer} />;
};
export const Menu = memo(_Menu);
附加问题:ToggleDrawer 是 UseNavigation 工具。它可以采取任何额外的论点吗?我阅读了 2 次文档,但没有找到任何关于参数或道具的信息。谢谢!
解决方案
答案仍然是秘密......我希望你不要像这样使用抽屉
推荐阅读
- c# - SQL 更新不适用于主键
- r - ggplots2条形图中的不同颜色
- python - scrapy:使用 xpath 从 div 中删除一些元素 span 元素
- c# - 如何使用动态 JSonPath 查询在 JObject 中设置值?
- c - 编译过程和变量地址
- vhdl - std_logic 和 std_logic_vector 之间的区别(0 到 0)
- android-layout - 我所有的 xml 在设计中都是空的
- jenkins - 詹金斯奴隶路径不起作用
- scala - Scala:列表中字符的频率
- javascript - 在javascript中添加带有输入标签的表格行的按钮