问题描述
我有一个名为 MyDevicesPage 的类,它控制一个页面,我试图操作 res 对象,然后将其传递给 DataService 的 updateDevicesToServer 方法以进行进一步操作。 代码编译得很好,但在运行时它会抛出一个错误错误错误:未捕获(承诺):类型错误:无法设置未定义的属性“设备”
这是类和相关的接口
export class MydevicesPage implements OnInit {
devices : Array<deviceInterface>
constructor(private deviceService : DeviceService,private route: ActivatedRoute,private router: Router, private authenticationService : AuthenticationService) { }
ngOnInit() {
this.deviceService.getDevices().then((res : devicesInterface) => {
if(res){
let data : ResUpdateDevices
data.devices = res;
this.devices = res.devices;
data.token = this.authenticationService.getToken();
this.deviceService.updateDevicesToServer(data).subscribe(res => {
console.log(res)
},err=>{
console.log(err)
});
}
})
}
goto_device(ssid : String, name : String){
this.router.navigate(['members','device',ssid,name])
}
}
ResUpdateInterface 接口
export interface ResUpdateDevices{
devices : devicesInterface
token : string
}
设备接口接口
export interface deviceInterface {
ssid : String,
name : String
}
设备接口接口
export interface devicesInterface {
devices : Array<deviceInterface>
}
Console Logging res 给出了这个
{devices : [{ssid:"ssid", name :"name"}]}
1楼
Simon K
1
已采纳
2019-02-25 02:53:24
您收到此错误是因为您在尝试分配data.devices = res;
之前没有初始化data
对象data.devices = res;
.
我建议进行以下更新:
let data: ResUpdateDevices = {
devices: res,
token: this.authenticationService.getToken(),
};
this.devices = res.devices;