属性 在 angular 中未找到将流与 RxJS 结合的映射
property not found mapping combining streams with RxJS in angular
嗨,我有 Ofertas 和 concursos 这两个流
ofertas$ = this.dataService.getOfertas();
concursos$ = this.dataService.getConcursos();
ofertasConOrganismos$ = forkJoin([
this.ofertas$,
this.concursos$
]);
ngOnInit(): void {
this.ofertasConOrganismos$
.subscribe(item => console.log(item));
}
在 Ofertas[] 中,每个 Oferta 都有 organismoId 属性,我需要用相关值 en Concurso[] 填充它也有这个 属性
但是当我尝试这个时
ofertasConOrganismos$ = forkJoin([
this.ofertas$,
this.concursos$
])
.pipe(
map(([ofertas, concursos]) =>
ofertas.map(oferta => ({
...oferta,
organismoId: concursos.find(c => c.id == oferta.concursoId).organismoId
}) as Oferta))
);
我收到这个错误
有什么想法吗?
谢谢
问题出在未定义的“concursos.find(c => c.id == oferta.concursoId)” - “find()”方法没有找到任何东西,所以你无法检索未定义对象的“.organismoId”参数。您可以使用以下可选运算符语法(带问号)以避免错误:
map(([ofertas, concursos]) =>
ofertas.map(oferta => ({
...oferta,
organismoId: concursos.find(c => c.id == oferta.concursoId)?.organismoId
}) as Oferta))
嗨,我有 Ofertas 和 concursos 这两个流
ofertas$ = this.dataService.getOfertas();
concursos$ = this.dataService.getConcursos();
ofertasConOrganismos$ = forkJoin([
this.ofertas$,
this.concursos$
]);
ngOnInit(): void {
this.ofertasConOrganismos$
.subscribe(item => console.log(item));
}
在 Ofertas[] 中,每个 Oferta 都有 organismoId 属性,我需要用相关值 en Concurso[] 填充它也有这个 属性
但是当我尝试这个时
ofertasConOrganismos$ = forkJoin([
this.ofertas$,
this.concursos$
])
.pipe(
map(([ofertas, concursos]) =>
ofertas.map(oferta => ({
...oferta,
organismoId: concursos.find(c => c.id == oferta.concursoId).organismoId
}) as Oferta))
);
我收到这个错误
有什么想法吗?
谢谢
问题出在未定义的“concursos.find(c => c.id == oferta.concursoId)” - “find()”方法没有找到任何东西,所以你无法检索未定义对象的“.organismoId”参数。您可以使用以下可选运算符语法(带问号)以避免错误:
map(([ofertas, concursos]) =>
ofertas.map(oferta => ({
...oferta,
organismoId: concursos.find(c => c.id == oferta.concursoId)?.organismoId
}) as Oferta))