我的应用程序中有一个堆栈/抽屉导航。我希望能够在我的顶部标题导航中有一个菜单图标,用于切换抽屉菜单的打开和关闭。
这是我的代码:
import * as React from 'react';
import { useNavigation, DrawerActions } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import { TouchableOpacity } from 'react-native';
import {
Layout,
Icon,
Text,
TopNavigation,
TopNavigationAction,
} from '@ui-kitten/components';
import DrawerMenu from './DrawerMenu';
const Stack = createStackNavigator();
const MenuIcon = (props) => <Icon name="menu" {...props} />;
const ToggleMenuAction = () => <TopNavigationAction icon={MenuIcon} />;
const MenuButton = () => (
<TopNavigation accessoryLeft={ToggleMenuAction} title="Eva Application" />
);
const HeaderLeft = () => {
const navigation = useNavigation();
return (
<Layout style={{ flexDirection: 'row' }}>
<TouchableOpacity
onPress={() => {
navigation.dispatch(DrawerActions.toggleDrawer());
}}
>
<MenuButton />
</TouchableOpacity>
</Layout>
);
};
export default function AppStack() {
return (
<Stack.Navigator>
<Stack.Screen
options={{
// eslint-disable-next-line react/display-name
headerLeft: () => <HeaderLeft />,
}}
component={DrawerMenu}
name="Drawer"
/>
</Stack.Navigator>
);
}
我不希望标题按钮旁边有标题。奇怪的是,当我从
const MenuButton = () => (
<TopNavigation accessoryLeft={ToggleMenuAction} title="Eva Application" />
);
让它只是
const MenuButton = () => (
<TopNavigation accessoryLeft={ToggleMenuAction} />
);
切换功能只是停止工作。我必须多次单击菜单按钮才能使菜单切换打开和关闭,但是当标题在那里时,它可以顺利运行。
为什么会这样?