Angular 如何让switchMap在CombineTest内开火?
我有以下代码,它没有触发开关映射。不知道我做错了什么Angular 如何让switchMap在CombineTest内开火?,angular,rxjs6,Angular,Rxjs6,我有以下代码,它没有触发开关映射。不知道我做错了什么 import { switchMap} from "rxjs/operators"; import { combineLatest } from 'rxjs'; this.companies$ = combineLatest(this.authService.user$, this.filter$ ).pipe( switchMap(([user, filter]) =>{ re
import { switchMap} from "rxjs/operators";
import { combineLatest } from 'rxjs';
this.companies$ = combineLatest(this.authService.user$, this.filter$ ).pipe(
switchMap(([user, filter]) =>{
return this.afs.collection<CompanyProfile>('companies', ref => {
console.log("this doesnt fire");
if (user) { ref.where('owner.network', '==', user.activeNetworkProfile.id) };
if (filter) { ref.where('name', '==', filter) };
return ref;
}).valueChanges();
}
));
从“rxjs/operators”导入{switchMap};
从“rxjs”导入{combineLatest};
this.companys$=CombineTest(this.authService.user$,this.filter$).pipe(
开关映射(([用户,过滤器])=>{
返回此.afs.collection('companys',ref=>{
console.log(“这不会触发”);
if(user){ref.where('owner.network','=',user.activeNetworkProfile.id)};
if(filter){ref.where('name','=',filter)};
返回ref;
}).valueChanges();
}
));
switchMap从未启动的原因是筛选器$observable从未初始化。我向构造函数中添加了以下代码,它成功了
this.filter$ = new BehaviorSubject(null);
switchMap从未触发的原因是筛选器$observable从未初始化。我向构造函数中添加了以下代码,它成功了
this.filter$ = new BehaviorSubject(null);