angular2跳转路由没有触发ngOninit生命周期函数?

发布于 2022-09-06 23:55:02 字数 339 浏览 16 评论 0

在另一个路由中是这样跳转的:

_this.router.navigate(['/examdetail'], { queryParams: { examid: _this.examId[dataIndex]}});

跳到examdetail这个路由的时候只触发了constructor,ngOnInit没有触发:

  ngOnInit() {
    console.log(222);
  }
  
当重新刷新这个页面的时候会触发oninit,但是我想在已进入这个路由的时候触发,该怎么做,还有就是为什么会导致触发不到oninit这个生命周期函数?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

醉生梦死 2022-09-13 23:55:02

可以直接监听ActiveRoute的params事件

constructor(private _route: ActivatedRoute,) {
    this._route.params.subscribe((params: Params) => {
        //params: {examid: 你传入的值}
    }
}

没有你我更好 2022-09-13 23:55:02

你肯定是在examdetail这个同一个路由下进行跳转

这是因为Angular在同一个页面内跳转时,不会重新创建组件的实例。如楼上所说,可以通过监听ActiveRoute的params事件进行跳转。

为人所爱 2022-09-13 23:55:02

我也出现了这个问题,实例化之后路由跳转,就会这样

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文