【发布时间】:2018-03-01 13:16:49
【问题描述】:
我正在尝试在用户登录后更改登录状态
component.ts
isLoggedIn$: Observable<boolean>;
constructor (private auth:Auth){}
ngOnInit (){
this.isLoggedIn$ = this.auth.getUser()
console.log(this.isLoggedIn$);
}
Auth.ts
@Injectable()
export class Auth {
private user:boolean = false;
setUser(){
this.user= true;
}
getUser(){
return this.user
}
removeUser(){
this.user = false;
}
}
但我收到以下错误
错误 TS2322:类型“真”不可分配给类型 “可观察”
【问题讨论】:
-
您期望
Observable的boolean值,但只返回boolean值。如果您从异步映射到boolean值的http调用返回Observable,则此代码将更有意义。 -
我在用
Auth类嘲笑http服务 -
如果你在嘲笑,那么返回
Observable.of(this.user) -
您是否在模板中使用
isLoggedIn$?如果是这样,您可以像*ngIf="isLoggedIn$ | async"一样使用它 -
是的,我正在使用它,我需要添加订阅者来收听更改
标签: javascript rxjs angular5