属性'selectedvalue'在初始化之前使用



我试图通过BehaviorSubject将服务的日期共享给另一个组件,但出现了上述错误。

public content = new BehaviorSubject<any>(this.selectedvalue);
public share = this.content.asObservable();
selectedvalue: Meal[] = [];
loadSubCategoriesFood(name: string): Observable<{ meals: Meal[] }> {
return this.http
.get<{ meals: Meal[] }>(
this.recipies.listofsubcategories + 'filter.php?i=' + name
)
.pipe(
tap((resultcategory) => {
this.selectedvalue = resultcategory?.meals;
})
);
}

我的另一个组件:

这就是我订阅服务的地方。

export class CategorypageComponent implements OnInit {
constructor(public categoryfood: HomepageService) {}
ngOnInit(): void {
const getSharedValue = this.categoryfood.share.subscribe((x) =>
console.log(x)
);
}
}

您只是将selectedvalue传递为BehaviourSubject一次BehaviourSubject将看不到对selectedValue的更新。

使用.next()方法将更改推送到BehaviourSubject

public content = new BehaviorSubject<Meal[]>([]);
public share = this.content.asObservable();
loadSubCategoriesFood(name: string): Observable<{ meals: Meal[] }> {
return this.http
.get<{ meals: Meal[] }>(
this.recipies.listofsubcategories + 'filter.php?i=' + name
)
.pipe(
tap((resultcategory) => {
this.content.next(resultcategory?.meals)
})
);
}
}

在这种情况下,您不再需要selectedvalue

最新更新