You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native子栈页面隐藏父栈头部,消除双头部问题

解决双头部叠加问题

问题根源是主导航栈中的Onboarding页面自带默认头部,而子栈OnboardingStack内的页面又配置了自定义头部,两者叠加导致双头部现象。你之前在父栈全局设置screenOptions={{headerShown: false}}会隐藏所有页面的头部,包括子栈的自定义头部,这不符合需求。

只需给父栈中对应OnboardingStack的Stack.Screen单独配置headerShown: false,就能只隐藏父栈的默认头部,保留子栈的自定义头部:

修改后的MainNavigation代码:

const MainNavigation = () => {
return (
    <NavigationContainer>
        <Stack.Navigator id={'MainStack'}>
            <Stack.Screen
                name="SplashScreen"
                component={Splash}
                options={{ headerShown: false }}
            />
            {/* 单独隐藏该页面的父栈默认头部 */}
            <Stack.Screen 
                name="Onboarding" 
                component={OnboardingStack} 
                options={{ headerShown: false }} 
            />
            <Stack.Screen name="Auth" component={AuthStack} />
            <Stack.Screen
                name="Home"
                options={{ headerShown: false }}
                component={Tabs}
            />
        </Stack.Navigator>
    </NavigationContainer>
);
};

修改后,父栈的Onboarding页面不再显示默认的浅灰色头部,子栈中OnboardingStep1和OnboardingStep2的自定义<Header>会正常单独展示,不会出现双头部问题。

内容的提问来源于stack exchange,提问作者ngwomo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 23:15:48