繁体   English   中英

在更新到最新的Angular(v6到v7)之后,BehaviorSubject(在Ionic Project中)表现得很奇怪

[英]BehaviorSubject (in Ionic Project) behaves strangely after update to latest Angular (v6 to v7)

它让我疯狂。

我已经检查了一个非常简单的离子v4项目,其中包含登录流程

该演示工作非常精细,但由于这个项目已经有5个月了,我决定用最新的离子cli创建一个新的离子项目,并将光源放入新的......具有最新的稳定离子依赖性。

但是rxJS-BehaviorSubject(authState $)的行为非常奇怪,请参见屏幕截图。

代码: https//github.com/meumobi/meu-starter.login-flow.ionic-v4/blob/master/src/app/core/auth/auth.service.ts

代码(我已经在isAuthenticated()方法中添加了一些console.logs):

console.log('isAuthenticated: ', this.authState$.getValue());
console.log('isAuthenticated: ', this.authState$);

控制台:

在此输入图像描述

所以发生了什么事:

getValue()返回初始值,其中打印对象包含正确的值(true)。 这对我来说似乎很奇怪,因为它们都是彼此相称的。

当我更改版本(原始的package.json)时,它将再次工作:

在此输入图像描述

离子项目的更新将角度版本从v6.1更新到v7.2(包括其deps)和TypeScript从2.9到3.1。

RXJS已从6.2.2更新为6.3.3。

如果你能告诉我发生了什么,我真的很酷。

更新:

我可能已将其跟踪到导致此问题的单个依赖项。

最后一个工作:“@ ionic / angular”:“4.0.0-beta.17”不工作:任何高于@ ionic / angular @ 4.0.0-beta.17的东西。

在创建新的离子项目时,它附带4.1.0。 这意味着它不能用于新项目。

非常感谢,提前,

萨沙

尝试直接访问该值

this.authState$.value

您需要使其成为可观察的订阅数据。 请这样使用

 public _auth$:Observable<boolean> =this.authState$.asObservable();
 this._auth.subscribe(data=>{console.log(data);
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM