You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 17中router.navigate首次点击偶尔失效问题求助

Angular 17中router.navigate首次点击偶尔失效问题求助

大家好,我遇到了一个很诡异的Angular路由问题,想请教下各位同行!

我开发的Angular应用有两个页面:一个带表单的录入页,另一个是结果展示页。我在录入页放了个按钮,点击后本该跳转到结果页,但有时候首次点击router.navigate完全没反应,必须点第二次才能成功跳转,这个问题是随机出现的,实在让人头大。

我本来抱着试试的心态加了setTimeout(理想情况不想用定时器),但就算加了500ms延迟,还是偶尔会出现首次点击失效的情况。

下面是我的相关代码:

组件中的跳转函数

public goToResults() {
  if (this.form.valid) {
    setTimeout(() =>
      this.router.navigate(["resultados/es"])
    , 500);
  } else {
    this.showErrors = true;
  }
}

路由配置文件(app.routes)

export const routes: Routes = [
  { path: 'datos/:lang', component: UserDataComponent },
  { path: 'resultados/:lang', component: ResultsComponent, canActivate: [ReloadGuardService] },
  { path: '**', redirectTo: '/datos/es', pathMatch: 'full' }
];

我已经做了调试:只要表单验证通过,每次点击按钮都会进入setTimeout执行navigate那行代码,但就是偶尔跳转不成功,控制台也没有任何报错信息。

有没有大佬遇到过类似的问题?能帮我分析下可能是什么原因吗?提前感谢大家!

备注:内容来源于stack exchange,提问作者Alberto Camino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 10:29:31