【发布时间】:2019-09-18 23:59:35
【问题描述】:
我想使用 Subject 将数据从一个组件传递到另一个组件。我正在使用 Angular 7。 以下是我的服务:-
public shareData = new Subject();
setShareDataOfReadingDetail(datatobeShared:any){
console.log(datatobeShared)
this.shareData.next(datatobeShared);
this.shareData.complete()
}
getShareDataOfReadingDetail(){
return this.shareData.asObservable();
}
我的第一个组件是:-
shareDetail(detail){
this.readingService.setShareDataOfReadingDetail(detail)
this.router.navigate(['./tabs/tabs/readings/detail'])
}
我获取数据的组件是:-
ngOnInit() {
this.readingService.getShareDataOfReadingDetail().subscribe((data)=>{console.log(data)})
}
但订阅主题根本没有触发(即它没有在控制台中打印任何内容)
【问题讨论】:
-
你马上
complete()你的SubjectsetShareDataOfReadingDetail()。如果我没记错的话,您需要使用BehaviorSubject来重播您的最后一个值。 -
@alexkucksdorf 我也使用过 BehaviourSubject。它也没有触发
-
@alexkucksdorf 使用 BehaviourSubject 并删除完整句子效果很好。非常感谢
标签: angular typescript rxjs angular7 subject