因此,目前我有一个窗体,该窗体长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重新触发。
任何帮助都会很棒!