React Native 在打开深度嵌套的屏幕后导航回到同一个堆栈中

问题描述 投票:0回答:1

我正在努力实现以下行为:

  1. 我收到推送通知,目标屏幕例如'订单' + 参数中的 id
  2. 当用户按下通知时,他将被带到“订单”屏幕或“产品”屏幕(我有一个检查通知类型的 switch 语句)
  3. 在订单屏幕上,他可以看到“返回”按钮,将他带回“订单”或“产品列表”屏幕,而不是通知或根屏幕(将其视为面包屑/订单<- /orders/[id])

我已成功实现第 1 点和第 2 点。

就第 3 点而言,是否有任何方法可以通过构建路线或以某种简单的方式构建路线来实现这一目标?或者我是否需要具有带有硬编码返回按钮的自定义标题,该按钮可以将我带到我想要的任何屏幕。

目前我什至没有看到“返回”按钮,但 navigation.canGoBack 返回 true。

我的路线结构如下:

  • 根栈
    • AppNavigator(如果用户已登录)或 AuthNavigator(如果未登录)
      • 主页导航器
      • 浏览导航器
        • 浏览根屏幕
        • 品牌屏幕
        • 产品列表屏幕
        • 产品屏幕
      • 账户导航器
        • 帐户根屏幕
        • 订单屏幕
        • 订单屏幕
        • 退货屏幕
    • 通知导航器
    • 模代尔

总体来说这个结构是不是有点大材小用了?这是我第一次开发 React Native 应用程序,我不确定组织导航的行业标准方式是什么。

我是否应该提供此选项来直接返回订单,或者返回到例如订单是预期的行为主页或通知列表?

react-native react-navigation react-native-navigation
1个回答
0
投票

使用 reset 替换当前状态并构建所需的状态。像这样的东西:

navigation.reset({
  routes: [
    {
      name: 'Orders',
    },
    {
      name: 'Order',
      params: { id: 1 },
    }
  ]
})
© www.soinside.com 2019 - 2024. All rights reserved.