メインコンテンツへスキップ
バージョン: 6.x

StackActions レファレンス

StackActions は、スタックベースのナビゲーターに固有のアクションを生成するためのメソッドを含むオブジェクトです。そのメソッドは、CommonActions で使用可能なアクションを拡張します。

次のアクションがサポートされています

置き換え

replace アクションにより、ナビゲーションステータス のルートを置き換えることができます。次の引数を受け取ります

  • name - string - どこかに登録されたルートの宛先名。
  • params - object - 宛先ルートに渡すパラメーター。
import { StackActions } from '@react-navigation/native';

navigation.dispatch(
StackActions.replace('Profile', {
user: 'jane',
})
);

特定のルートを置き換える場合は、ルートキーを参照する source プロパティとナビゲーションステータスキーを参照する target プロパティを追加できます

import { StackActions } from '@react-navigation/native';

navigation.dispatch({
...StackActions.replace('Profile', {
user: 'jane',
}),
source: route.key,
target: navigation.getState().key,
});

source プロパティが明示的に undefined に設定されている場合、フォーカスのあるルートが置き換えられます。

プッシュ

push アクションは、スタックの上にルートを追加し、それを前方へ移動します。これは、navigate が異なる点です。navigate では、指定された名前のルートがスタック上ですでに存在する場合、スタックをさかのぼって戻ります。push は常に上に追加するため、ルートは複数回存在できます。

  • name - string - スタック上にプッシュするルートの名前。
  • params - object - 宛先ルートに渡す画面パラメーター。
import { StackActions } from '@react-navigation/native';

const pushAction = StackActions.push('Profile', { user: 'Wojtek' });

navigation.dispatch(pushAction);

ポップ

pop アクションにより、スタック内の前の画面に戻ります。1 つのオプションの引数 (count) を受け取り、戻す画面の数を指定できます。

import { StackActions } from '@react-navigation/native';

const popAction = StackActions.pop(1);

navigation.dispatch(popAction);

popToTop

popToTop アクションにより、スタック内の最初の画面に戻り、他のすべての画面は破棄されます。機能的には StackActions.pop({n: currentIndex}) とまったく同じです。

import { StackActions } from '@react-navigation/native';

navigation.dispatch(StackActions.popToTop());