【问题标题】:How to fix the error observable in angular如何修复角度可观察到的错误
【发布时间】:2020-06-27 09:50:11
【问题描述】:

我想删除当前登录的用户,这就是我使用过滤器的原因。 但我收到一个错误:

类型“Subscription”缺少类型“Observable[]>”中的以下属性:_isScalar、source、operator、lift 等等。

代码如下:

@Select(UserPageState.get('collection')) users$: Observable<Array<Partial<User>>>;
async ngOnInit() {
  const USER = this.creds.credentials['id'];
  this.users$.subscribe(param => param.filter(x => x.id !== USER));
  await this.store.dispatch(new UserPageList({ start: 1, length: this.pageSize })).toPromise();
}

HTML

<ag-grid-angular
      style="width: 100%; height: 100%;"
      [class]="(darkMode$ | async) ? 'ag-theme-balham-dark' : 'ag-theme-balham'"
      [gridOptions]="gridOptions"
      [rowData]="users$ | async"
      [columnDefs]="columnDefs"
      [frameworkComponents]="frameworkComponents"
      (gridReady)="onGridReady($event)"
      (firstDataRendered)="onFirstDataRendered($event)"
    >
    </ag-grid-angular>

【问题讨论】:

    标签: javascript angular typescript


    【解决方案1】:

    问题出在下面的语句中,订阅 observable 会返回一个 Subscription 实例,并且您再次将其分配给 observable。

    this.users$ = this.users$.subscribe(param => param.filter(x => x.id !== USER));
    

    只是不要再次将其分配给 observable,它会解决问题。

    this.users$.subscribe(param => param.filter(x => x.id !== USER));
    

    【讨论】:

    • 但它并没有删除我登录的用户。
    • 您无需再次分配给 users$。如果您需要订阅实例,请创建另一个变量。为什么又把它分配给 users$ 了?
    • 因为值没有传递给 observable
    • 您仍然不需要再次将其分配给用户$。请删除它并再次运行您的程序
    • 仍然无法正常工作。即使我删除了this.users$ =
    猜你喜欢
    • 2021-02-22
    • 2019-04-25
    • 2018-10-15
    • 2017-05-23
    • 2019-03-24
    • 1970-01-01
    • 2017-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多