Safari 移动版和 ios 应用程序中的生命周期挂钩不起作用

Lifecycle hooks in safari mobile and ios app don’t work

None 的生命周期挂钩在 Safari 移动版或 ios 应用程序中有效。

NgOnInit 和 ionViewDidLoad 以及任何其他生命周期挂钩,它们都适用于桌面和 android 应用程序,但不适用于 ios 端。即使是第一次访问该页面。

但是,如果我 tap/click 在屏幕上的任何位置,那么所有内容都会完全按照需要加载。

此外,如果我第二次导航到该页面或重新加载该页面,一切都如我所愿。

有什么建议吗?我没有收到任何错误。

我正在从 back4apps 的数据库中获取一些信息,并试图在页面打开时显示它。

打字稿

  ngOnInit() {
  this.unhide();
  }

unhide() {
this.news.get("deEygHXCR9").then((gameScore) => {
    this.memberList = gameScore.get("announcements");
  }, (error) => {
  });
}

html

<ion-item class = "backColor2">
      <ion-textarea class="textAreaHeight" readonly="true" auto-grow="true" type="text" name="memberList" [(ngModel)]="memberList" ></ion-textarea>
      </ion-item>

正如我所说,android 和 chrome 工作正常。对修复或替代方法有什么建议吗?我正在使用 ionic 5 和 angular 8

我不是最有经验的程序员……但我最终发现了问题……不是生命周期挂钩。这是因为我正在显示来自第三方的数据,为了让我的屏幕在检索数据后使用 ngmodel 更新它,我不得不 运行 它在 NgZone 中......就像这样......

import {  NgZone } from '@angular/core';


constructor(
public ngZone: NgZone,
  ) {}



async unhide() {
this.news.get("deEygHXCR9").then((gameScore) => {
this.ngZone.run(() => {
    this.memberList = gameScore.get("announcements");
});
  }, (error) => {
  });
}

感谢所有看过的人!