ReactNative使用react-navigation如何确认当前正在显示的是哪个页面?

发布于 2022-09-07 23:13:04 字数 95 浏览 17 评论 0

我有多个页面链接到同一个WebSocket服务器,当收到消息的时候需要根据正在显示的页面做不同的处理,请问react-navigation有没有获取当前正在显示的是页面的方法?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

转瞬即逝 2022-09-14 23:13:04

在使用createStackNavigator(routeConfig, navigatorConfig)方法创建导航器时,在第二个参数对象中有一个navigationOptions属性,在这里可以知道当前是在哪个页面。

const StackNavigator = createStackNavigator(
  {
    App: { screen: App },
    Test: { screen: Test },
    Count: { screen: Count },
  },
  {
    headerMode: 'none',             // 设置顶部导航条不显示
    initialRouteName: 'App',        // 默认的初始路由
    initialRouteParams: {           // 初始路由的参数
      name: 'Carrie'
    },
    initialRouteKey: 'InitialKey',  // 初始路由的可选标识符
    navigationOptions: ({ navigation }) => {
      const routeName = navigation.state.routeName;
      console.log('navigation 对象', navigation);
      return {
        title: routeName,
      };
    },
    transitionConfig: () => ({
      screenInterpolator: (props) => {
        return StackViewTransitionConfigs.SlideFromRightIOS.screenInterpolator(props);
      },
    }),
  }
);

图片描述

划重点:navigation.state.routeName
使用react-navigation跳转的每个页面也都有一个this.props.navigation属性,和上面的内容一样。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文