@Injectable()
export class ApiSearchEffects {
@Effect()
search$: Observable<any>
= this.actions$
.ofType(query.ActionTypes.QUERYSERVER)
.debounceTime(300)
.map((action: query.QueryServerAction) => action.payload)
.switchMap(payload => {
console.log(payload);
const nextSearch$ = this.actions$.ofType(query.ActionTypes.QUERYSERVER).skip(1);
this.searchService.getsearchresults(payload)
.takeUntil(nextSearch$)
.map((response) =>
({type: '[Search] Change', payload: response}
))
});
上面的代码给出了类型为“(payload: any) => void”的参数不可分配给类型为“(value: any, index: number) => ObservableInput”的参数。 类型“void”不可分配给类型“ObservableInput”。 哪里可能是错误的。我在 https://github.com/ngrx/effects/blob/master/docs/intro.md 关注了 ngrx 效果官方介绍。 .
最佳答案
问题是你的 switchMap 应该返回一个值;它会像您拥有的那样返回 void。
试试这个
return this.searchService.getsearchresults(payload)
.takeUntil(nextSearch$)
关于angular - ngrx 效果给出类型 'void' 不可分配给类型 'ObservableInput',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44559480/