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

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

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

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

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

可以直接监听ActiveRoute的params事件

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

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

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

新手上路,请多包涵

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏