← ClaudeAtlas

rn-navigationlisted

Expo Router navigation patterns for React Native. Use when implementing navigation, routing, deep links, tab bars, modals, or handling navigation state in Expo apps.
aiskillstore/marketplace · ★ 329 · AI & Automation · score 79
Install: claude install-skill aiskillstore/marketplace
# React Native Navigation (Expo Router) ## File-Based Routing Fundamentals Expo Router uses file-system based routing. Files in `app/` become routes. ### Route Structure ``` app/ ├── _layout.tsx # Root layout (providers, global UI) ├── index.tsx # "/" route ├── (tabs)/ # Tab group (parentheses = layout group) │ ├── _layout.tsx # Tab bar configuration │ ├── home.tsx # "/home" tab │ └── profile.tsx # "/profile" tab ├── (auth)/ # Auth flow group │ ├── _layout.tsx # Auth-specific layout │ ├── login.tsx # "/login" │ └── register.tsx # "/register" ├── settings/ │ ├── index.tsx # "/settings" │ └── [id].tsx # "/settings/123" (dynamic) └── [...missing].tsx # Catch-all 404 ``` ### Layout Groups `(groupName)` Parentheses create layout groups - they affect layout hierarchy but not URL: ```typescript // app/(tabs)/_layout.tsx import { Tabs } from 'expo-router'; export default function TabLayout() { return ( <Tabs> <Tabs.Screen name="home" options={{ title: 'Home', tabBarIcon: ({ color }) => <HomeIcon color={color} />, }} /> <Tabs.Screen name="profile" options={{ title: 'Profile' }} /> </Tabs> ); } ``` ### Dynamic Routes `[param]` ```typescript // app/player/[id].tsx import { useLocalSearchParams } from 'expo-router'; export default function PlayerScreen() { cons