无法解构 'object null' 的 属性 'uid',因为它为 null

Cannot destructure property 'uid' of 'object null' as it is null

所以我在 Angular 中有一个名为 appUser$ 的函数,错误说“无法解构 'object null' 的 属性 'uid',因为它是空的。”

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

但是还是不行,有什么想法吗?

参数作为对象包含在内有什么具体原因吗?解构问题源于这项任务。你可以尝试直接使用它

get appUser$(): Observable<AppUser> {
  return this.user$.pipe(
    switchMap(uid => this.userService.get(uid))
  );
}

我不确定,但我认为您对函数参数有疑问: 我的意思是参数为 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);
        }
      }));   
 }