【问题标题】:react-native-router-flux - Resetting navigation stack in tabreact-native-router-flux - 在选项卡中重置导航堆栈
【发布时间】:2016-10-11 16:00:00
【问题描述】:

我们想要什么

我们在应用程序中使用了react-native-router-flux,发现我们需要(至少)为一个选项卡重置导航堆栈。这是我们的场景结构:

tabs
  listTab
    listView
    recordingView
  creationTab
    recordView
    descriptionView
    publishView

具体来说,我们的应用程序允许用户创建和查看记录。有一个listTab,有两个子场景(录制列表和查看单个录制)和一个用于创建(creationTab)录制的选项卡(recordViewdescriptionViewpublishView)。在最后一步之后,录制为published,我们重定向到viewRecording 场景,以在listTab 中进行该录制。 当再次按下creationTab时,我们想再次回到创建过程的第一个场景,但我们当然又回到了最后一步(publishView)。

我们尝试了什么

在阅读了与此相关的文档和问题后,我们认为选项 reset 可能会对我们有所帮助。但是,如果我们尝试将type='reset' 添加到creationTab 的props 中,当按下tab 时,所有其他tab 图标都会消失(如this issue 中所述)。

因此,我们尝试将推送的typepublishView 设置为recordingViewreset,但这也不起作用(尽管调度了正确的操作并且back 按钮在新场景中被删除,当再次点击recordingTab 图标时,我们仍然回到我们原来的publishView)。

我们也考虑过使用Switches 来卸载组件,但看起来它们的用途并非如此......

版本

  • react-native: 0.30.0
  • react-native-router-flux: 3.32.0

在处理此类问题和类似问题数天之后,我们现在变得有点绝望,我不确定我们应该如何进行。有没有人遇到过类似的问题或找到了解决方案?

【问题讨论】:

    标签: react-native


    【解决方案1】:

    我遇到了同样的问题。作为临时解决方法,我不使用reset 选项,而是立即使用pop 操作跟随重定向。

    就我而言,我的观点只有一层,所以这并不太脏。我会寻找更清洁的解决方案,但我希望它在此期间能有所帮助。

    react-native: 0.35.0-rc

    react-native-router-flux: 3.35.0

    【讨论】:

    • 是的,这是一个很好的解决方案
    • 重定向...?像这样Actions.pop(); Actions.scene();?
    • @Lughino 就我而言,从给定的视图来看,我想返回到包含在活动视图中的项目页面。我会这样做:NavigationActions.activity(); NavigationActions.pop(); NavigationActions.projectPage({ projectId });问题中问题的链接也可能对您有所帮助。
    • @ArthurParmentier 感谢您的回复!我的问题是当用户选择选项卡时重置视图。不幸的是,您解释的方式与此不兼容。无论如何感谢您的解释!
    猜你喜欢
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-09
    • 1970-01-01
    • 2018-08-26
    • 1970-01-01
    • 2022-01-15
    相关资源
    最近更新 更多