javascript - 无效管道参数 : '[object Object]' for pipe 'AsyncPipe' but console gives Observable?

标签 javascript angular typescript google-cloud-firestore

我对 firebase 和 rxjs 还很陌生,但这仍然没有进入我的脑海:

我通过服务对我的 firestore 数据库进行简单查询

chat.service.ts:

chatsCollection: AngularFirestoreCollection<Chat>;
  chats: Observable<Chat[]>;

  constructor(private db: AngularFirestore) {
  }

  getChats(): Observable<Chat[]> {
    this.chatsCollection = this.db.collection('chats');
    return this.chatsCollection.valueChanges();
  }

chat.component.ts:

  chats: Observable<Chat[]>;
  constructor(private router: Router, public chatService: ChatService) { }

  ngOnInit() {
    this.chats = this.chatService.getChats();
    console.log(this.chats);
  }

chat.component.html:

<mat-card class="example-card">
  <mat-card-header>
    <mat-card-title>Your Chats</mat-card-title>
  </mat-card-header>
  <mat-card-content>
    <mat-selection-list #chats>
      <h3 mat-subheader>Chats</h3>
      <mat-list-option *ngFor="let chat of (chats | async)" (click)="handleClick(chats)" [value]="chat.id">
        <img matListAvatar src="./assets/avatar.svg" alt="Avatar Icon">
        <h3 mat-line>{{chat.name}}</h3>
        <p mat-line>test</p>
      </mat-list-option>
    </mat-selection-list>
  </mat-card-content>
</mat-card>

现在的问题是异步管道在获取对象而不是可观察对象时抛出错误,但我之前记录了它并且它说它是可观察对象?另外,如果我订阅它(用于测试),它会返回我想要的值。

data

Console Output

提前感谢您的帮助!

使用的版本:

rxjs:6.3.3 Angular 7 火力基础:5.5.6

最佳答案

问题出在 mat-selection-list 上的#chats。它会覆盖模板内的组件 chats 变量。将该名称重命名为其他名称,然后就可以开始了。

<mat-selection-list #chatList>

关于javascript - 无效管道参数 : '[object Object]' for pipe 'AsyncPipe' but console gives Observable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53125258/

相关文章:

javascript - 在 DOM 中按相邻元素排序

visual-studio - 如何在 Visual Studio 2017 中配置 TypeScript 和 Require

javascript - Angular ng serve 产生错误 : NGCC failed

angular - 失败 : Can't resolve all parameters for MatDialogRef: (?,?,?)。单元测试 Angular 项目

html - 如何将动态数据绑定(bind)到 aria-label?

angular - 组件@Input继承

javascript - 从 JS 对象到 JSON Angular

javascript - 对于大型 json 结构,ReactJS 中的滞后输入

javascript - 在取消悬停状态后保持 css 动画出现

javascript - 根据输入表单中输入的内容分别弹出不同的表单