'Observable<void>' 类型的参数不可分配给 'OperatorFunction<unknown, unknown> 类型的参数
Argument of type 'Observable<void>' is not assignable to parameter of type 'OperatorFunction<unknown, unknown>
我正在尝试导入 RxJS 运算符并且我了解合并错误。它告诉我我在标题中描述的错误。我已经浏览了关于 Merge 的 RxJS 文档,但没有找到任何修复它的方法。正如我现在读到的,为了连接必须使用管道的可观察对象,我想代码没问题。
我留下我的服务代码
import { Component, OnInit } from '@angular/core';
import { Wine } from 'src/app/model/wine';
import { Observable } from 'rxjs';
import { WineService } from 'src/app/services/wine.service';
import { WineQuantityChange } from 'src/app/model/wineQuantityChange';
import { Subject } from 'rxjs';
import { startWith, debounceTime, distinctUntilChanged, merge, switchMap } from 'rxjs';
@Component({
selector: 'app-winelist',
templateUrl: './winelist.component.html',
styleUrls: ['./winelist.component.css']
})
export class WinelistComponent implements OnInit {
public wines$: Observable<Wine[]>;
public searchTerm: string = '';
private searchSubject: Subject<string> = new Subject();
private reloadWineList: Subject<void> = new Subject();
constructor(private wineService: WineService) { }
ngOnInit(): void {
this.wines$ = this.searchSubject.pipe(
startWith(this.searchTerm),
debounceTime(300),
distinctUntilChanged(),
merge(this.reloadWineList),
switchMap((query) => this.wineService.getWines(this.searchTerm))
);
}
}
您正在使用的导入rxjs
是静态方法;在您的情况下,您需要使用实例方法。
这位于 rxjs/operators
:
import { merge } from 'rxjs/operators';
我正在尝试导入 RxJS 运算符并且我了解合并错误。它告诉我我在标题中描述的错误。我已经浏览了关于 Merge 的 RxJS 文档,但没有找到任何修复它的方法。正如我现在读到的,为了连接必须使用管道的可观察对象,我想代码没问题。
我留下我的服务代码
import { Component, OnInit } from '@angular/core';
import { Wine } from 'src/app/model/wine';
import { Observable } from 'rxjs';
import { WineService } from 'src/app/services/wine.service';
import { WineQuantityChange } from 'src/app/model/wineQuantityChange';
import { Subject } from 'rxjs';
import { startWith, debounceTime, distinctUntilChanged, merge, switchMap } from 'rxjs';
@Component({
selector: 'app-winelist',
templateUrl: './winelist.component.html',
styleUrls: ['./winelist.component.css']
})
export class WinelistComponent implements OnInit {
public wines$: Observable<Wine[]>;
public searchTerm: string = '';
private searchSubject: Subject<string> = new Subject();
private reloadWineList: Subject<void> = new Subject();
constructor(private wineService: WineService) { }
ngOnInit(): void {
this.wines$ = this.searchSubject.pipe(
startWith(this.searchTerm),
debounceTime(300),
distinctUntilChanged(),
merge(this.reloadWineList),
switchMap((query) => this.wineService.getWines(this.searchTerm))
);
}
}
您正在使用的导入rxjs
是静态方法;在您的情况下,您需要使用实例方法。
这位于 rxjs/operators
:
import { merge } from 'rxjs/operators';