我正在尝试更新值并将其传递到另一个组件中。这是我的服务
public useCashback = false;
setUseCashback() {
console.log(this.useCashback);
this.useCashback = !this.useCashback;
console.log(this.useCashback);
}
getUseCashback(): Observable<Boolean> {
return observableOf(this.useCashback);
}
在我的组件内部,我只需要调用setUseCashback来反转true或false
onUseCashback() {
this.checkoutService.setUseCashback();
}
然后在另一个要更新的组件中接收它
ngOnInit(): void {
this.useCashback = this.checkoutService
.getUseCashback()
.subscribe((response: any) => {
console.log(response);
return response;
});
所以基本上它在setUseCashback
内部得到更新,我通过记录useCashback变量看到了这一点,但这在我的组件内部没有响应。
答案 0 :(得分:0)
您需要使用一个主题使其可观察。在这种情况下,BehaviorSubject允许您使用给定值对其进行初始化。 快速更新您的代码:
public useCashback: BehaviorSubject<boolean> = new BehaviorSubject(false);
setUseCashback(): void {
const currentUseCashback = this.useCashback.getValue();
this.useCashback.next(!currentUseCashback);
}
getUseCashback(): Observable<boolean> {
return this.useCashback.asObservable();
}
ngOnInit(): void {
this.checkoutService.getUseCashback().subscribe((useCashback) => {
this.useCashback = useCashback;
});
}