可以在导航选项中使用navigation.toggleDrawer()

问题描述 投票:0回答:1

在我的导航文件中,当我想切换抽屉时,出现以下错误:

TypeError:navigation.openDrawer不是函数。(在'navigation.openDrawer()','navigation.openDrawer'未定义)

这是我的抽屉:

const DrawerNavigator = () => {
    return (
        <Drawer.Navigator
            initialRouteName="MYSHIFT"
        >
            <Drawer.Screen name="MYSHIFT" component={TopTabNavigator} />
        </Drawer.Navigator>
    )
}

这是我的容器导航:

const CareworkerNavigation = () => {
    return (
        <NavigationContainer>
            <Stack.Navigator>

                <Stack.Screen
                    name="Login"
                    component={LoginScreen}
                    options={{ headerShown: false }} />

                <Stack.Screen
                    name="Main"
                    options={({ navigation }) => {
                        return {
                            headerLeft: () => <Button title="LEFT BUTTON" onPress={() => {
                                navigation.toggleDrawer(); // <--- this line throws an error 
                            }} />
                        }
                    }}
                    component={DrawerNavigator} />

            </Stack.Navigator>
        </NavigationContainer>
    )
}

export default CareworkerNavigation

为什么我不能在导航选项中使用navigation.toggleDrawer()?是否可以消除此问题?

react-native react-navigation react-navigation-stack react-navigation-drawer react-navigation-v5
1个回答
0
投票

[在navigation处构造options时,您引用堆栈的navigation,什么不能执行绘制动作,请尝试在标头本身上构造它]]


            <Stack.Screen
                name="Main"
                options={() => {
                    return {
                        headerLeft: (navigation) => <Button title="LEFT BUTTON" onPress={() => {
                            navigation.toggleDrawer(); // <--- this line throws an error 
                        }} />
                    }
                }}
                component={DrawerNavigator} />

https://github.com/react-navigation/react-navigation/issues/55

© www.soinside.com 2019 - 2024. All rights reserved.