无法解构“对象空”的属性“ uid”,因为它为空

时间:2020-07-23 21:04:20

标签: angular pipe observable switchmap

所以我在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);
        }
      }));   
  }

但是它仍然行不通,有什么想法吗?

2 个答案:

答案 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);
        }
      }));   
 }