当routeName改变时,React Navigation触发器

时间:2017-11-03 03:16:55

标签: reactjs react-native react-navigation

我正在使用反应导航来导航屏幕。我使用嵌套导航TabNavigatorStackNavigator。如何知道当前屏幕是否已滑动/更改为其他屏幕,并在不使用state的情况下更改屏幕内的Redux。我尝试获取this.props.navigation.state.routeName,它获取屏幕的routeName,但是当routeName发生更改时如何触发

const mainNav = TabNavigator({
  Home: { 
    screen: HomeScreen,
  },
  Live: {
   screen: LiveScreen,
  },
  Radio: {
   screen: RadioScreen,
  },
} );

export const mainStack = StackNavigator({
  Home: { screen: mainNav},
  Content: { screen: ContentScreen },
});

1 个答案:

答案 0 :(得分:0)

目前无法在反应导航中跟踪滑动手势。您可以使用黑客来实现这一目标,但大多数都需要使用redux来挂钩反应导航。

跟踪屏幕的最佳方法是使用react redux并将状态与appState挂钩。这将为您提供对导航的最大控制,您还可以使用redux操作来控制导航以及应用中的其他业务内容。

使用react navigation with redux

的最简单方法

您可以参考

https://github.com/react-community/react-navigation/issues/1063