
Expo Router
Handles Expo Router's file-based navigation patterns, covering Stack configuration, native tabs, and screen-level options. You'll want this when setting up navigation in React Native apps using Expo's routing system. The skill emphasizes minimal configuration and auto-discovery, which means it'll steer you away from explicitly listing every screen and toward letting the file structure do the work. Includes specifics on dynamic headers with useLayoutEffect and platform-native tabs with SF Symbols. The patterns here are opinionated about keeping navigation configuration close to each screen rather than centralizing everything, which matches how Expo Router actually wants you to work.
- skills.sh installs
- 134
- last updated
- Aug 21, 2026
Install
$ npx -y skills add jchaselubitz/drill-app --skill expo-router --agent claude-codeInstalls into .claude/skills of the current project.
Files
Expo Router Patterns
Stack Navigator Configuration
Root Layout Setup
Use screenOptions on the Stack component to set defaults for all screens. Do NOT explicitly list every screen - routes are auto-discovered from the file structure.
// app/_layout.tsx
import { Stack } from 'expo-router';
export default function RootLayout() {
return (
<Stack screenOptions={{ headerShown: false }} />
);
}
Per-Screen Configuration
Individual screens configure their own options using <Stack.Screen> within the component file:
// app/lesson/[id].tsx
import { Stack } from 'expo-router';
export default function LessonScreen() {
return (
<View>
<Stack.Screen
options={{
title: 'Lesson',
headerShown: true,
headerBackTitle: 'Back',
}}
/>
{/* Screen content */}
</View>
);
}
Dynamic Header Configuration
Use useNavigation with setOptions for dynamic header content like buttons:
import { useNavigation } from 'expo-router';
import { useLayoutEffect } from 'react';
export default function Screen() {
const navigation = useNavigation();
Sponsors
Details
- Repository
- github.com/jchaselubitz/drill-app
- Categories
- Mobile Development, CLI & Terminal
- First seen
- Jun 3, 2026