所以我在Angular中有一个名为appUser $的函数,错误提示“无法解构'object null'的属性'uid',因为它为null。”
get appUser$(): Observable<AppUser> {
return this.user$.pipe(
switchMap(({uid})=> this.userService.get(uid)));
}
然后我将其更改为:
get appUser$(): Observable<AppUser> {
return this.user$.pipe(
switchMap(({uid})=> {
if({uid}){
return this.userService.get(uid);
} else {
return of(null);
}
}));
}
但是它仍然行不通,有什么想法吗?
答案 0 :(得分:1)
将自变量作为对象包含在任何特定原因上吗?重组问题源于此任务。您可以尝试直接使用
get appUser$(): Observable<AppUser> {
return this.user$.pipe(
switchMap(uid => this.userService.get(uid))
);
}
答案 1 :(得分:0)
我不确定,但是我认为您对function参数有疑问: 我的意思是该参数为null,您正在尝试从null获取uid。
尝试这样:
get appUser$(): Observable<AppUser> {
return this.user$.pipe(
switchMap((obj)=> {
if(obj && obj.uid){
return this.userService.get(obj.uid);
} else {
return of(null);
}
}));
}