gpt4 book ai didi

reactjs - React 导航 - 如何在 stackNavigator 中嵌套抽屉导航器

转载 作者:行者123 更新时间:2023-12-03 13:49:32 25 4
gpt4 key购买 nike

我正在使用 react 导航,我想从我的个人资料屏幕打开一个抽屉,可以选择转到编辑个人资料屏幕和设置> 屏幕。但当我单击我的个人资料标题按钮时,我不知道如何打开抽屉。

应用程序.js:

const MyProfileStack = createStackNavigator({
MyProfile: {
screen: profile,
navigationOptions: ({navigation}) => {
return {
title: "My Profile",
headerRight: (
<Icon type="evilicon" name="navicon" size={40}
onPress={() => navigation.dispatch(DrawerActions.openDrawer())}/>
)
};
}
}
})

const DrawerStack = createDrawerNavigator({
Edit: { screen: EditProfileStack }
Settings: { screen: SettingsStack }
})

const EditProfileStack = createStackNavigator({
EditProfile: {
screen: editProfile,
navigationOptions: ({navigation}) => {
return {
title: "Edit Profile",
headerLeft: (
<Icon type="evilicon" name="chevron-left" size={50}
onPress={() => navigation.navigate("MyProfile")}/>
)
};
}
}
});

const TabStack = createBottomTabNavigator({
Feed: { screen: FeedStack },
Profile: { screen: MyProfileStack },
});

const MainStack = createSwitchNavigator(
{
Home: TabStack,
Drawer: DrawerStack
},
{
initialRouteName: 'Home'
}
);

const AppContainer = createAppContainer(MainStack);

最佳答案

解决方案

您需要将 MyProfileStack 放入 DrawerStack 中,如下所示。

const DrawerStack = createDrawerNavigator({
MyProfile: { screen: MyProfileStack }
Edit: { screen: EditProfileStack }
Settings: { screen: SettingsStack }
})


const TabStack = createBottomTabNavigator({
Feed: { screen: FeedStack },
Profile: { screen: DrawerStack },
});

const AppContainer = createAppContainer(MainStack);

您可以使用各种组合。

为什么?

当您切换到另一个屏幕时,SwitchNavigator 会放弃其他屏幕。所以你不能从已经退出的屏幕上调用抽屉。

附注:您可以使用navigation events如果您想在更换屏幕时刷新屏幕。使用onWillFocus

关于reactjs - React 导航 - 如何在 stackNavigator 中嵌套抽屉导航器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55623262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com