【发布时间】:2019-02-14 08:19:40
【问题描述】:
问题 - 我们在 showModal 上有一个关闭回调,理想情况下应该将用户导航到另一个页面。但是,当模式对话框关闭时,用户将被导航回基本页面,而不是要导航的页面。
所以导航应该作为登录 -> 员工列表作为登录 -> 员工列表 -> 登录(由于额外的子路由处理而返回)
可以在https://play.nativescript.org/?template=play-ng&id=lrIrYT&v=5找到重现问题的代码
重现步骤
- 应用在主屏幕上启动
- 点击登录点击
- 出现弹出窗口。点击选择按钮。
- 您应该被引导到员工页面。 (理想情况下)根据导航。
- 如果您被正确引导到员工列表页面,请单击返回并移动到主页并重复步骤 1 到 4。
- 上述问题应转载。
【问题讨论】:
-
尝试在模式关闭回调中为导航调用添加一个小超时。
-
setTimeout(() => { this._routerExtensions.navigate(['/staff-list', '10']); }, 1)
-
@NickIliev 成功了。然而,这个问题的根本原因是什么?
-
我猜是简单的竞争条件,关闭回调(有时)在路线导航(返回主页)之前被触发。因此,在这种情况下,模式已关闭 >> 您正在导航 >> nativescript 正在导航(为时已晚)。使用 setTimout 保证里面的代码将在下一个 javascript 传递(VM 相关)中执行,因此:modal closed >> nativescript navigation >> your navigation
标签: nativescript angular2-nativescript nativescript-angular