react-native-screens
react-native-screensは、ネイティブのナビゲーションコンテナコンポーネントをReact Nativeに公開することを目的としています。これは、スタンドアロンライブラリとして使用するように設計されたものではなく、フル機能のナビゲーションライブラリの依存関係として使用するように設計されています。
インストール
-
package.jsonファイルにJavaScriptライブラリの依存関係を追加します。該当するReact Nativeバージョンのタブを選択してください。
"dependencies": { ... "@amazon-devices/react-native-screens": "~2.0.0" }
"dependencies": { ... "@amazon-devices/react-native-screens": "~3.0.0" } -
npm installコマンドを使用して、npmパッケージを再インストールします。
例
以下の例では、4つの同一の画面を持つデモアプリを作成します。各画面には番号が表示され、ユーザーは4つのうちの任意の画面に移動したり戻ったりできます。
この例では、react-navigationを使用して各画面を構築します。このデモを実行するには、package.jsonに次の依存関係をインストールする必要があります。
"dependencies": {
...
"@amazon-devices/react-navigation__native": "^8.0.0",
"@amazon-devices/react-navigation__stack": "^8.0.0"
}
import { enableFreeze, enableScreens } from '@amazon-devices/react-native-screens';
import { NavigationContainer } from '@amazon-devices/react-navigation__native';
import { createStackNavigator } from '@amazon-devices/react-navigation__stack';
import * as React from 'react';
import {
StyleSheet,
Text,
TouchableOpacity,
View
} from 'react-native';
enableScreens();
enableFreeze();
const Stack = createStackNavigator();
//@ts-ignore
const DemoScreen = ({ navigation, route }) => {
const { id } = route.params;
return (
<View>
<Text>画面{id}</Text>
{[0,1,2,3].map((buttonId) => (
<TouchableOpacity onPress={() => navigation.navigate('Screen' + buttonId)}>
<Text>画面#{buttonId}に移動</Text>
</TouchableOpacity>
))}
<TouchableOpacity onPress={() => navigation.goBack()}>
<Text>{"前の画面に戻る"}</Text>
</TouchableOpacity>
</View>
)
}
const screenOptions = { animationEnabled: true }
export const App = () => (
<NavigationContainer>
<Stack.Navigator screenOptions={screenOptions} detachInactiveScreens>
<Stack.Screen key={0} name={"Screen" + 0} component={DemoScreen} initialParams={{ id: 0 }} options={screenOptions} />
<Stack.Screen key={1} name={"Screen" + 1} component={DemoScreen} initialParams={{ id: 1 }} options={screenOptions} />
<Stack.Screen key={2} name={"Screen" + 2} component={DemoScreen} initialParams={{ id: 2 }} options={screenOptions} />
<Stack.Screen key={3} name={"Screen" + 3} component={DemoScreen} initialParams={{ id: 3 }} options={screenOptions} />
</Stack.Navigator>
</NavigationContainer>
)
APIリファレンス
コンポーネント
| コンポーネント名 | 説明 |
|---|---|
ScreenContainer |
1つ以上のScreenコンポーネントのコンテナです。 |
Screen |
ナビゲーション画面に表示するビューのコンテナです。 |
ScreenStack |
1つ以上のScreenコンポーネントを直接の子と見なし、それをプラットフォームネイティブのスタックコンテナにレンダリングします。 |
Vega向けReact Nativeは、react-native-screens(英語のみ)を使用してネイティブ画面のサポートを追加し、react-native-screens API(英語のみ)と同じAPIをサポートしています。
iOS、Android、Windowsに固有のプロパティはサポートされていません。
実装の詳細
以下の<Screen>コンポーネントプロパティはサポートされていません(大部分はiOSまたはAndroidに固有のプロパティです)。
customAnimationOnSwipefullScreenSwipeEnabledgestureEnabledgestureResponseDistancehideKeyboardOnSwipehomeIndicatorHiddennativeBackButtonDismissalEnablednavigationBarColornavigationBarHiddenonHeaderBackButtonClickedonNativeDismissCancelledpreventNativeDismissreplaceAnimationscreenOrientationsheetAllowedDetentssheetExpandsWhenScrolledToEdgesheetCornerRadiussheetGrabberVisiblesheetLargestUndimmedDetentstackAnimation(fadeとnoneのアニメーションのみサポート)stackPresentationstatusBarAnimationstatusBarColorstatusBarHiddenstatusBarStylestatusBarTranslucentswipeDirectiontransitionDuration<ScreenStackHeaderConfig>およびその他のヘッダーコンポーネント(<ScreenStackHeaderCenterView>、ScreenStackHeaderRightView、<ScreenStackHeaderLeftView>、<ScreenStackHeaderSearchBarView>)はサポートされていません。
react-native-screensを無効にする方法
ネイティブ画面のサポートを無効にしてプレーンなReact Native Viewを使用したい場合は、エントリファイル(App.js)に以下のコードを追加します。
import { enableScreens } from '@amazon-devices/react-native-screens';
enableScreens(false);
サポートされているバージョン
| NPMパッケージのバージョン | Vega SDKバージョン | Vega OSバージョン | React Nativeバージョン |
|---|---|---|---|
| ~2.0.x+3.25.0 | 0.23以前 | OS 1.1(1401010009820)以前 |
0.72 |
| ~3.0.x+4.4.0 | 0.24 | OS 1.2(2101020054720) |
0.72、0.83 |
関連リソース
その他のライブラリについては、サポート対象のサードパーティのライブラリとサービスを参照してください。
Last updated: 2026年7月21日

