在我的仪表板应用程序中,我具有以下数据结构:
项目->仪表板->等。因此,这意味着project
对象继承了dashboard
对象的列表。当用户登录时,将加载并观察项目数据,以便不同的组件可以访问项目数据。但是现在,当我尝试访问订阅中项目的特定仪表板时,出现了未定义的错误。我的订阅如下:
ngOnInit(): void {
this.dataService.projectData
.subscribe((project: Project) => {
this.project = project;
console.log('Project', project);
let d: Dashboard = project.dashboards[0];
this.currentDashboardId = project.dashboards[0].id;
this.dataService.changeCurrentDashboardId(this.currentDashboardId);
this.currentSheetId = project.dashboards.find(x => x.id === this.currentDashboardId).sheets[0].id;
this.dataloaded = true;
});
}
打印的日志“项目”甚至可以正确显示对象。但是稍后访问仪表板时一行显示undefined
。无法解释原因。也许你们每个人都知道并且可以告诉我原因。我很感激。预先感谢。
答案 0 :(得分:0)
使用first()
运算符来确保恢复数据,console.log有点棘手,它没有显示正确时间发生了什么,
您的代码如下:
this.dataService.projectData
.pipe(first())
.subscribe((project: Project) => {
// your code is here
});
您也可以使用Filter()等待响应中的特定值
this.dataService.projectData
.pipe(filter(project) => project.somevalue !== undefined)
.subscribe((project: Project) => {
// your code is here
});