在我的导航文件中,当我想切换抽屉时,出现以下错误:
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()?是否可以消除此问题?
[在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