Compétences rn-navigation
📦

rn-navigation

Risque faible

Expo Routerナビゲーションの構築

React Nativeアプリには、タブバー、モーダル、ディープリンクのための適切なナビゲーションアーキテクチャが必要です。このスキルは、本番アプリ向けの実証済みExpo Routerパターンを提供します。

Prend en charge: Claude Codex Code(CC)
⚠️ 68 Médiocre
1

Télécharger le ZIP du skill

2

Importer dans Claude

Allez dans Paramètres → Capacités → Skills → Importer un skill

3

Activez et commencez à utiliser

Tester

Utilisation de "rn-navigation". フィード、検索、プロフィール用の下部タブを持つアプリを作成してください。中央に作成モーダルを開くFABボタンを追加してください。

Résultat attendu:

Expo Routerディレクトリ構造を使用:

app/
├── _layout.tsx # Root layout with providers
├── (app)/
│ └── _layout.tsx # Tab layout with tabBar
├── (app)/_layout.tsx:

export default function AppLayout() {
return (
<Tabs
screenOptions={{
tabBarActiveTintColor: '#007AFF',
headerShown: false,
}}>
<Tabs.Screen name="feed" />
<Tabs.Screen name="search" />
<Tabs.Screen
name="compose"
href={{ pathname: '/compose', params: { modal: true } }}
listeners={{ tabPress: (e) => e.preventDefault() }}
/>
<Tabs.Screen name="profile" />
</Tabs>
)
}

Utilisation de "rn-navigation". myapp://messages/123 が会話123のチャット画面を開くようにディープリンクをセットアップしてください

Résultat attendu:

app.jsonで:

{
"expo": {
"scheme": "myapp",
"plugins": [
[
"expo-router",
{ "origin": "myapp://" }
]
]
}
}

app/_layout.tsxまたはindex.tsxで:

const linking = {
prefixes: ['myapp://', 'https://myapp.com'],
config: {
screens: {
'(app)': {
screens: {
messages: {
path: 'messages/:conversationId',
parse: {
conversationId: (conversationId) => conversationId
}
}
}
}
}
}
}

export default function RootLayout() {
return (
<GestureHandlerRootView>
<SafeAreaProvider>
<NavigationContainer linking={linking}>
<Stack />
</NavigationContainer>
</SafeAreaProvider>
</GestureHandlerRootView>
)
}

Audit de sécurité

Risque faible
v5 • 1/21/2026

Documentation-only skill for React Native navigation patterns. Static findings are false positives: backtick patterns are markdown code formatting, cryptographic alerts are scanner noise on text patterns, and URLs are legitimate metadata. No executable code or security concerns detected.

2
Fichiers analysés
1,097
Lignes analysées
0
résultats
5
Total des audits
Aucun problème de sécurité trouvé

Score de qualité

38
Architecture
100
Maintenabilité
87
Contenu
21
Communauté
90
Sécurité
91
Conformité aux spécifications

Ce que vous pouvez construire

新しいアプリを構築するモバイル開発者

本番パターンに従って、タブ、スタック、ディープリンクを備えた新しいExpoアプリのナビゲーション構造をセットアップします。

複雑なナビゲーションを追加するチーム

モーダル、ネストされたルート、適切なディープリンク構成をサポートするために既存のナビゲーションをリファクタリングします。

ナビゲーション問題をデバッグする開発者

ナビゲーション状態の問題、ディープリンク処理の失敗、またはタブバーのレンダリング問題を診断します。

Essayez ces prompts

基本的なナビゲーションセットアップ
ホーム、プロフィール、設定画面を含むタブバーを持つReact NativeアプリのExpo Routerナビゲーション構造を作成してください。通知とプライバシーオプションを含む設定用のネストされたスタックを含めてください。
ディープリンク構成
カスタムURLスキーム scheme://profile/settingsが設定スタックのプライバシー画面を開くように、Expoアプリのディープリンクを構成してください。app.jsonと連携フックの実装に必要な構成を示してください。
モーダルナビゲーションパターン
Expo Routerを使用して、背景のぼかしを伴って下からスライドアップするモーダルプレゼンテーションパターンを実装してください。ジェスチャーサポート付きの適切な却下処理を含めてください。
ナビゲーション状態の永続化
AsyncStorageを使用してナビゲーション状態の永続化を実装し、ユーザーがアプリ再起動後に正確な画面位置に戻れるようにしてください。ネストされたナビゲーション状態の復元ロジックを処理してください。

Bonnes pratiques

  • (group)フォルダ規約を使用してナビゲーションスタックを整理し、共有レイアウトを管理する
  • 本番環境でのパス解決の問題を避けるために、ディープリンクのプレフィックスを早期に構成する
  • プラットフォーム間でジェスチャーの動作が異なるため、iOSとAndroidの両方でナビゲーションをテストする

Éviter

  • 同じアプリ内でReact NavigationとExpo Routerを混在させないでください
  • コンポーネント内にディープリンクURLをハードコードしないでください。動的なパス生成を使用してください
  • 適切なエラーバウンダリなしで深いナビゲーション状態の変更を行わないでください

Foire aux questions

Expo Routerで認証ガードを処理するにはどうすればよいですか?
認証状態に基づいてルートレイアウトで条件付きレンダリングを使用します。必要に応じてrouter.replace()を使用して、認証されていないユーザーを専用の認証フローにリダイレクトします。
Expo RouterをReact Native Fabricコンポーネントと一緒に使用できますか?
はい、Expo Router 3.0以降はFabricをサポートしています。クラシックコンポーネントとFabricコンポーネントの両方で適切なジェスチャー処理を行うために、アプリをGestureHandlerRootViewでラップしてください。
Expo Routerで画面間でパラメータを渡すにはどうすればよいですか?
hrefプロップでparamsオブジェクトを使用します: href={{ pathname: '/profile', params: { userId: '123' } }}。useLocalSearchParams()フックを介してparamsにアクセスします。
StackコンポーネントとTabsコンポーネントの違いは何ですか?
Stackはドリルダウンフロー用の階層的ナビゲーションを管理します。Tabsはトップレベルのビュー間を切り替えるための下部バーを提供します。Tabsの内側にStackをネストするか、その逆で組み合わせます。
Expo RouterでAndroidの戻るボタンを処理するにはどうすればよいですか?
Expo Routerはほとんどの場合、Androidの戻るボタンを自動的に処理します。カスタム動作にはuseBackButtonHook()を使用するか、router.canGoBack()でナビゲーション状態を確認してください。
Expo Routerで画面遷移をアニメーション化できますか?
はい、Stack.Screenのanimationプロップを使用します。オプションには'default'、'fade'、'slide_from_right'、'slide_from_left'、'fade_from_bottom'、'none'があります。

Détails du développeur

Structure de fichiers

📄 SKILL.md