【发布时间】:2022-01-02 15:23:45
【问题描述】:
我在我的 React Native 项目中使用以下结构。
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen name="Login" component={LoginScreen} />
<Stack.Screen
name="Home"
component={HomeScreen}
options={{
headerRight: () => <SettingsButton />,
presentation: 'modal',
}}
/>
<Stack.Screen
name="Settings"
component={SettingsScreen}
options={{
presentation: 'card',
}}
/>
</Stack.Navigator>
</NavigationContainer>
function SettingsButton() {
const navigation = useNavigation();
return (
<Button
title="Settings"
onPress={() => navigation.navigate('Settings')}
/>
);
}
每当按下 SettingsButton 时,我想在主屏幕(前景窗口)而不是登录屏幕(背景/根窗口)上打开我的设置窗口。不幸的是,React Navigation 使用根窗口来推动屏幕并且发生了这种情况(注意后退按钮是如何出现在背景窗口上的):
我怎样才能让它使用前景窗口?
【问题讨论】:
-
您作为主屏幕的模态和设置屏幕的卡片呈现。那么它只会看起来像这样..您的确切要求是什么?实际上你的问题有点令人困惑。
-
@Manojkanth 问题是导航推送不是发生在打开的模态屏幕上,而是发生在后台屏幕上。
-
由于您的主屏幕处于模态,您是否尝试在推送您的卡片视图(设置屏幕)之前关闭您的模态。
-
我认为你不能在模态框内推屏幕。如果你想在模态框上打开一个模态框,那么它是可能的。如果你想在 modal 中打开一个设置屏幕,那么你必须使用那个设置屏幕作为一个组件。
-
是的...我以前遇到过类似的问题。
标签: react-native react-navigation react-navigation-stack