反应导航弹出窗口并在一个动画中移至下一屏幕

时间:2019-12-20 00:23:56

标签: react-native react-navigation react-navigation-stack

因此,目前我有一个窗体,该窗体长4个屏幕,在最后一个屏幕上,我想弹出到堆栈顶部,然后使用一个看起来像“向后”的动画导航到下一页

因此使用StackAction.reset将不起作用,因为如果我这样做了,那么我的所有useEffects都会被再次调用,因为这基本上就像是重新初始化所有控制器一样。

我目前正在做的事情,但我真的不喜欢以下内容

props.navigation.dispatch(StackActions.popToTop());
props.navigation.dispatch(NavigationActions.navigate({ routeName: 'Album', params: { id: albumForm.AlbumId.value } }) );

这使我回到“ TabNavigator”,然后向前导航,导致发生两个动画。

const resetAction = StackActions.reset({
        index: 1,
        actions: [ 
           NavigationActions.navigate({ routeName: 'TabNavigator' }),
           NavigationActions.navigate({ routeName: 'Album', params: { id: albumForm.AlbumId.value } }) 
        ],
});
props.navigation.dispatch(resetAction)

这是我以前的解决方案,但是正如我提到的,这个问题是1.没有动画。 2.它重新初始化我的控制器,导致我的useEffects重新触发。

任何帮助都会很棒!

0 个答案:

没有答案