У меня проблема с подпиской в Ionic 4 страница.Метод подписки запускается, когда я загружаю страницу по ее маршруту прямо в браузере.Если я перехожу на страницу по ссылке маршрутизатора, метод подписки не запускается.
Я использую Ионные вкладки и читаю несколько проблем GitHub, которые указывают, что события жизненного цикла не работают правильномежду вкладками навигации.
Пожалуйста, смотрите следующий код на моей странице (score.page.ts
):
ngAfterViewInit() {
console.log('ngAfterViewInit');
this.productService.points.subscribe(
(e) => console.log('score points', e)
);
}
ionViewDidLoad() { console.log('ionViewDidLoad'); }
ngOnInit(): void {
console.log('ngOnInit');
}
ionViewWillEnter() { console.log('ionViewWillEnter'); }
ionViewDidEnter() { console.log('ionViewDidEnter'); }
ionViewWillLeave() { console.log('ionViewWillLeave'); }
ionViewDidLeave() { console.log('ionViewDidLeave'); }
ionViewWillUnload() { console.log('ionViewWillUnload'); }
ngOnDestroy() {
console.log('ngOnDestroy');
}
Вывод на консоль с прямой загрузкой /app/home/score
:
Как видите, события жизненного цикла работают правильно, и метод подписки был вызван как ожидалось.
При загрузке /app/home
и перейдите к /app/home/score
(я пробовал routerlink и router.navigate), консольный журнал подписки отсутствует:
Этоогромная проблема, так как мне нужно динамически отображать данные на разных страницах, и это невозможно, если я не могу подписаться на Observable из своего сервиса.
Я также попробовал {{ productService.points | async }}
в шаблоне с тех порподписка итсlf, но ошибка остается прежней.
productService.points
имеет тип Observable<Number>
, но ошибка возникает и на других наблюдаемых объектах.
Должен ли я сообщить об этом или я простоЧто-то пропустили?
Пожалуйста, прокомментируйте, если вам нужно что-то еще.
Заранее спасибо