我正在尝试实现灯箱,但是出现以下错误:无法读取未定义的属性'img'。
有人知道我该怎么解决吗?
组件
img:any;
ImageInfo(id) {
var self = this;
this.Global.refreshToken().subscribe(function (result) {
self.fileService.getImages(id).then(function (resultado) {
if (resultado) {
self.imagMap.set(id,resultado);
self.img = self.imagMap.set(id,resultado);
self.items = this.img.map(item =>
new ImageItem({ src: item.value, thumb: item.value })
);
this.basicLightboxExample();
this.withCustomGalleryConfig();
}
}).catch();
});
}
此行错误
self.items = this.img.map(item =>
new ImageItem({ src: item.value, thumb: item.value })
);
我的img
答案 0 :(得分:0)
我认为问题始于以下几行:
terraform apply
您能否评论登录self.imagMap.set(id,resultado);
self.img = self.imagMap.set(id,resultado);
后得到的结果?
我怀疑是self.img
,问题就在这里。根据我的假设,此imageMap.set()
函数未返回任何内容。结果,如果您可以set
,则将为空。
所以,执行此操作并检查您是否为空。
console.log(self.img)
更新:
self.imagMap.set(id,resultado);
self.img = self.imagMap.set(id,resultado);
console.log(self.img) // check what you get on console
您可以摆脱ImageInfo(id) {
this.Global.refreshToken().subscribe(function (result) {
this.fileService.getImages(id).then(function (resultado) {
if (resultado) {
this.imagMap.set(id, resultado);
this.img = this.imagMap.set(id, resultado);
setTimeout(() => {
this.items = this.img.map(item =>
new ImageItem({src: item.value, thumb: item.value})
);
this.basicLightboxExample();
this.withCustomGalleryConfig();
})
}
}).catch();
});
}
变量,并将self
替换为self
。如果在此处附加整个component.ts文件,那就更好了。