Nativescript:使用 showModal 的 ModalDialogService 页面导航不正确

Nativescript: Page navigation working incorrectly with ModalDialogService using showModal

问题 - 我们在 showModal 上有一个关闭回调,理想情况下应该将用户导航到另一个页面。但是,当模式对话框关闭时,用户将导航回基页而不是要导航的页面。

所以应该作为登录 -> 员工列表工作的导航正在作为登录 -> 员工列表 -> 登录(由于额外的子路由处理而返回)

可以在 https://play.nativescript.org/?template=play-ng&id=lrIrYT&v=5

找到重现问题的代码

重现步骤

  1. 应用程序在主屏幕上启动
  2. 点击登录点击
  3. 弹出窗口出现。单击 Select 按钮。
  4. 您应该被路由到员工页面。 (理想情况下)根据导航。
  5. 如果您被正确路由到员工列表页面,请单击返回并移至主页并重复步骤 1 到 4。
  6. 应重现上述问题。

根据@Nickliev 的建议

setTimeout(() => { this._routerExtensions.navigate(['/staff-list', '10']); }, 1)

"I guess simple race condition where the close callback is (sometimes) being triggered before the route navigation (that goes back to home page). So, in this case, the modal is closed >> you are navigating >> the nativescript is navigating (too late). Using the setTimout guaranties that the code inside will be executed in the next javascript pass (VM related) and thus: modal closed >> nativescript navigation >> your navigation"