Bottom tab navigator maintains independent stacks per tab
Why it matters
When all tabs share one stack, navigating deep into Home and then switching to Settings rewinds or contaminates Home's history — users lose the screen they were on, and tab icons stop feeling like separate surfaces. This breaks the tab metaphor that iOS and Android users expect, tanks session depth in product analytics, and forces users to re-navigate every time they glance at another tab. It is one of the most visible mobile-UX defects.
Severity rationale
Medium because navigation still works but tab state is lost on every tab switch, degrading user trust.
Remediation
Give each Tab.Screen its own Stack.Navigator component so history is preserved per tab. Put each stack in its own file under src/navigation/:
function HomeStack() {
return (
<Stack.Navigator>
<Stack.Screen name="HomeList" component={HomeListScreen} />
<Stack.Screen name="HomeDetail" component={HomeDetailScreen} />
</Stack.Navigator>
)
}
<Tab.Navigator>
<Tab.Screen name="HomeTab" component={HomeStack} />
<Tab.Screen name="SettingsTab" component={SettingsStack} />
</Tab.Navigator>
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Mobile Navigation & Deep Linking Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
Taxons
History
- 2026-04-18·v1.0.0·Initial import from mobile-navigation-linking·automated