如何导航回 Nativescript-vue 中的特定组件或 backstack 条目?

Posted

技术标签:

【中文标题】如何导航回 Nativescript-vue 中的特定组件或 backstack 条目?【英文标题】:How can I navigate back to specific component or backstack entry in Nativescript-vue? 【发布时间】:2019-08-25 01:07:48 【问题描述】:

我有多个步骤(步骤是动态的,比如说它的 4 个)移动屏幕,我可以在其中 $navigateBack() 从第 4 步到第 3 步、第 3 步到第 2 步、第 2 步到第 1 步点击后退箭头。所以它工作正常。

现在,在完成每个步骤后,我可以直接$navigateTo() 主屏幕(从我导航到步骤的位置),但是在我点击后退箭头后,它导航到上一个返回堆栈条目,这意味着最后一步 4。我想防止这种情况,并希望导航以提取主屏幕的上一个屏幕。

如果我在$navigateTo() 上使用clearHistory 标志,那么它会完全清除导航历史记录。

如果我使用backstackVisible 标志,那么它会停止内部后退步骤导航。

有没有什么方法可以在完成最后一步后导航到主屏幕,然后点击后退,我可以登陆主屏幕的正确前一个屏幕? 完成第 4 步后,如何仅清除所有动态步骤的堆栈?

有人可以解释一下 options 和 backStackEntry 在 $navigateBack(options, backstackEntry = null) 中是如何工作的,因为https://nativescript-vue.org/en/docs/routing/manual-routing/#navigateback 中没有添加任何细节

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

在您的特定情况下,我认为在具有自己框架的模式中打开步骤会更有意义。这样,模态中的导航堆栈与您的主导航堆栈完全分离,并允许您根据需要向前/向后导航。完成这些步骤后,您可以关闭模​​式并返回结果,您的主导航堆栈将不受影响!

我在这里创建了建议解决方案的最小演示:https://play.nativescript.org/?template=play-vue&id=SJdejN

【讨论】:

非常感谢您提出的建议。它现在工作得很好。 有没有办法像 $navigateTo 过渡属性一样从右侧打开模式弹出窗口?【参考方案2】:

我认为对于您的场景,您可以使用Modal View Navigation - 从主屏幕打开模态视图,然后在此模态视图中引导用户抛出您的步骤,当您需要从最后一步返回主屏幕时,你关闭模态视图。

【讨论】:

以上是关于如何导航回 Nativescript-vue 中的特定组件或 backstack 条目?的主要内容,如果未能解决你的问题,请参考以下文章

NativeScript-Vue - 从外部组件导航

Nativescript-vue原生iOS导航按钮在ActionBar上设置标题后消失

如何更改 nativescript-vue 中的 RadDataForm 样式? (Nativescript-Vue)

如何使用 NativeScript-vue 中的 BarcodeScanner 插件

恢复后有时会在 Nativescript-Vue 上显示主屏幕

NativeScript-Vue - 组件不刷新,但 app.js 会