【发布时间】:2019-08-19 03:26:46
【问题描述】:
这真的让我发疯了。
我检查了一个非常简单的ionic v4 Project with a login flow。
演示工作得非常好,但由于这个项目已经 5 个月大了,我决定使用最新的 ionic cli 创建一个新的 ionic 项目,并将源代码放入新的项目中......使用最新的稳定 ionic依赖关系。
但是 rxJS-BehaviorSubject (authState$) 的行为非常奇怪,请参见屏幕截图。
代码(我在 isAuthenticated() 方法中添加了一些 console.logs):
console.log('isAuthenticated: ', this.authState$.getValue());
console.log('isAuthenticated: ', this.authState$);
控制台:
那么发生了什么:
getValue() 返回初始值,其中打印的对象包含正确的值 (true)。这对我来说似乎很奇怪,因为它们都是紧接着被调用的。
当我改回版本(到原始 package.json)时,它会再次工作:
ionic 项目的更新将 angular 版本从 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。
创建新的 ionic 项目时,它附带 4.1.0。这意味着它不能用于新项目。
非常感谢,
萨沙
【问题讨论】:
标签: angular typescript ionic-framework behaviorsubject