【问题标题】:NgOnInit called twiceNgOnInit 调用了两次
【发布时间】:2019-12-04 03:44:28
【问题描述】:

我有一个位于警卫后面的页面,在 ngOnInit 上,我通常订阅上下文管理服务器,该服务器首先包含创建订阅的帖子,然后打开与服务器的 websocket 连接。在我的本地副本上,一切似乎都运行良好......但最近我注意到在生产版本中它有时会订阅两次,这让我相信 ngOnInit 被调用了两次。我不确定为什么会这样。

目前我的解决方案是将此订阅代码移动到服务并从应用组件 ngOnInit 调用一次。

【问题讨论】:

  • 你应该发布你的实际代码以及是什么让你相信这一点
  • 一般的想法:当您使组件可见时会发生 ngOnInit - 因为 *ngIf,或者因为组件出现在应用程序中-
  • @Eliseo 您是完全正确的,尽管现在这发生在仪表板页面上,该页面位于警卫后面,并且只有在令牌有效时才会重定向到。所以理论上它不应该被加载两次。

标签: angular angular-component-life-cycle


【解决方案1】:

原来我使用的是 Auth lib,我有 post_login url 和重定向 url 指向重定向页面,结果一个应该是重定向,另一个用作登录后加载的页面是完成,所以在将 post_login_url 指向“/”之后,它似乎解决了这个问题。尽管我心中的一个问题是,即使发生了 2 次重定向,为什么会触发 ngOnInit 两次,就像同一个组件在一个页面上加载了两次一样?不应该就像页面刚刚重新加载一样吗?

【讨论】:

    猜你喜欢
    • 2019-04-04
    • 2017-07-30
    • 2023-04-10
    • 1970-01-01
    • 2017-04-08
    • 2021-11-25
    • 2017-02-20
    • 2017-06-25
    相关资源
    最近更新 更多