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());