mcpField
R
react-native-navigation

react-native-navigation

github.com/pluginagentmarketplace開発1064 回インストール42 週間前に更新
リポジトリ

react-native-navigation について

React Navigation v6+ と Expo Router を使う React Native 開発者向けの学習スキルです。型安全な画面遷移、代表的なナビゲーター、ディープリンク、認証フローを扱います。

主な機能

  1. 01React Navigation の TypeScript 設定
  2. 02Stack、Tab、Drawer ナビゲーター
  3. 03ディープリンクとユニバーサルリンク
  4. 04型安全な画面パラメーター
  5. 05認証フローの処理

活用シーン

  1. 01React Native アプリのナビゲーション設定
  2. 02型チェック付きの画面パラメーター受け渡し
  3. 03特定画面を開くリンクの設定
  4. 04認証フローでのルート保護

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/pluginagentmarketplace/custom-plugin-react-native --skill react-native-navigation

インストール後、Claude Code で/react-native-navigationを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

assets/
config.yaml
schema.json
references/
GUIDE.md
PATTERNS.md
scripts/
validate.py

詳細

React Native Navigation スキル

React Navigation v6+ と Expo Router を使用した、本番環境向けのナビゲーションパターンを学びます。

前提条件

  • React Native の基礎知識(コンポーネント、スタイリング)
  • TypeScript の基礎知識
  • React context の理解

学習目標

このスキルを完了すると、次のことができるようになります。

  • React Navigation を TypeScript でセットアップする
  • Stack、Tab、Drawer ナビゲーターを実装する
  • ディープリンクとユニバーサルリンクを設定する
  • 認証フローを処理する
  • 型安全な方法で画面間にパラメーターを渡す

対象トピック

1. インストール
npm install @react-navigation/native @react-navigation/native-stack
npm install react-native-screens react-native-safe-area-context

# For tabs
npm install @react-navigation/bottom-tabs

# For drawers
npm install @react-navigation/drawer react-native-gesture-handler react-native-reanimated
2. Stack ナビゲーター
import { createNativeStackNavigator } from '@react-navigation/native-stack';

type RootStackParamList = {
  Home: undefined;
  Details: { id: string };
};

const Stack = createNativeStackNavigator<RootStackParamList>();

function RootNavigator() {
  return (
    <Stack.Navigator>
      <Stack.Screen name="Home" component={HomeScreen} />
      <Stack.Screen name="Details" component={DetailsScreen} />
    </Stack.Navigator>
  );
}
3. Tab ナビゲーター
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';

const Tab = createBottomTabNavigator();

function MainTabs() {
  return (
    <Tab.Navigator>
      <Tab.Screen name="Home" component={HomeScreen} />
      <Tab.Screen name="Profile" component={ProfileScreen} />
    </Tab.Navigator>
  );
}
4. ディープリンク
const linking = {
  prefixes: ['myapp://', 'https://myapp.com'],
  config: {
    screens: {
      Home: 'home',
      Details: 'details/:id',
    },
  },
};

<NavigationContainer linking={linking}>
  {/* navigators */}
</NavigationContainer>
5. 型安全なナビゲーション
import { useNavigation } from '@react-navigation/native';
import type { NativeStackNavigationProp } from '@react-navigation/native-stack';

type NavigationProp = NativeStackNavigationProp<RootStackParamList>;

function HomeScreen() {
  const navigation = useNavigation<NavigationProp>();

  return (
    <Button
      title="Go to Details"
      onPress={() => navigation.navigate('Details', { id: '123' })}
    />
  );
}

クイックスタートの例

import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';

type RootStackParamList = {
  Home: undefined;
  Details: { id: string; title: string };
};

const Stack = createNativeStackNavigator<RootStackParamList>();

export default function App() {
  return (
    <NavigationContainer>
      <Stack.Navigator>
        <Stack.Screen name="Home" component={HomeScreen} />
        <Stack.Screen name="Details" component={DetailsScreen} />
      </Stack.Navigator>
    </NavigationContainer>
  );
}

よくあるエラーと解決策

エラー原因解決策
"Navigator not found"NavigationContainer がないアプリを NavigationContainer でラップする
パラメーターが undefined型の不一致ParamList の型を確認する
ディープリンクが動作しない設定の不一致linking のパスを確認する

検証チェックリスト

  • 両方のプラットフォームでナビゲーションが動作する
  • ディープリンクで正しい画面が開く
  • TypeScript がパラメーターのエラーを検出する
  • 認証フローでルートが保護される

使用方法

Skill("react-native-navigation")

紐付けられたエージェント: 02-react-native-navigation

コメント