StackActions 参考
StackActions
是一个包含用于生成特定于基于堆栈的导航器的操作方法的对象。它的方法扩展了 CommonActions
中可用的操作。
支持以下操作
replace
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
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
pop
操作将带您返回堆栈中的先前屏幕。它接受一个可选参数 (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());