react-navigation 5 一次导航多条路线
react-navigation 5 navigate multiple routes at once
是否有比以下方法更好的导航多条路线的方法?
NavigatorService.navigate('Screen1', params);
NavigatorService.navigate('Screen2', params);
其中 Screen1
和 Screen2
是同一个堆栈导航器中的兄弟。
这是我在 snack 上创建的一个简单示例。基本上,您可以创建一个屏幕数组,并使用重置功能来创建历史记录。
navigation.dispatch(
CommonActions.reset({
index: 4,
routes: [
{
name: 'Stack',
params: { screen: 'StackView1' },
},
{
name: 'Stack',
params: { screen: 'StackView2' },
},
{
name: 'Stack1',
params: { screen: 'Stack1View1' },
},
{
name: 'Stack1',
params: { screen: 'Stack1View2' },
},
{
name: 'Stack1',
params: { screen: 'Stack1View3' },
},
],
})
);
我找到了一种方法,同时还保留了当前堆栈:
navigator.dispatch((state) => {
const newRoutes = [...state.routes, ...routesToAdd];
return CommonActions.reset({
...state,
routes: newRoutes,
index: newRoutes.length - 1,
});
});
是否有比以下方法更好的导航多条路线的方法?
NavigatorService.navigate('Screen1', params);
NavigatorService.navigate('Screen2', params);
其中 Screen1
和 Screen2
是同一个堆栈导航器中的兄弟。
这是我在 snack 上创建的一个简单示例。基本上,您可以创建一个屏幕数组,并使用重置功能来创建历史记录。
navigation.dispatch(
CommonActions.reset({
index: 4,
routes: [
{
name: 'Stack',
params: { screen: 'StackView1' },
},
{
name: 'Stack',
params: { screen: 'StackView2' },
},
{
name: 'Stack1',
params: { screen: 'Stack1View1' },
},
{
name: 'Stack1',
params: { screen: 'Stack1View2' },
},
{
name: 'Stack1',
params: { screen: 'Stack1View3' },
},
],
})
);
我找到了一种方法,同时还保留了当前堆栈:
navigator.dispatch((state) => {
const newRoutes = [...state.routes, ...routesToAdd];
return CommonActions.reset({
...state,
routes: newRoutes,
index: newRoutes.length - 1,
});
});