簡體   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