导航到顶部StackNavigator时关闭抽屉

时间:2018-01-09 21:55:23

标签: reactjs react-native redux rxjs react-navigation

在Google的大部分应用中,例如(联系人,gmail,...),只要您点击菜单条目,例如"设置" /"个人资料" /"退出"它关闭抽屉,然后(一旦完成动画)打开"设置" /无论如何。

我有一个与StackNavigator相同的需求,其中[SideMenu,settings]与SideMenu作为DrawerNaVigator。

目前我没有找到任何方法来关闭"很好地"抽屉。通过在NavigationActions.navigate()之前使用NavigationActions.back(),它可以完成工作但动画重叠。通过使用NavigationActions.navigation的超时,它似乎等待抽屉关闭结束但抽屉关闭和新屏幕打开之间的时间太长。无论如何,这似乎不是一个有效的解决方案。

// close drawer
NavigationActions.navigate('DrawerClose')
// navigate and overlap drawer close
NavigationActions.navigate('settings')


// close drawer
NavigationActions.navigate('DrawerClose')
// navigate and at least wait for the end of drawer close animation
// even with 1
// Also create a latency, (drawer close, .. some ms .., navigate
setTimeout(() => {
  NavigationActions.navigate('settings')
}, 1, 2, whatever)

为了实现这一目标,我们是否应该在其他行动的最后添加行动? 例如:

// close drawer
NavigationActions.navigate({
  routeName: 'DrawerClose',
  // then navigate to settings
  nextAction: NavigationActions.navigate('settings')
})

0 个答案:

没有答案