react-navigation 5 一次导航多条路线

react-navigation 5 navigate multiple routes at once

是否有比以下方法更好的导航多条路线的方法?

   NavigatorService.navigate('Screen1', params);
   NavigatorService.navigate('Screen2', params);

其中 Screen1Screen2 是同一个堆栈导航器中的兄弟。

这是我在 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,
    });
});