我正在尝试实现灯箱,但是出现以下错误:无法读取未定义的属性'img'。
有人知道我该怎么解决吗?
Component
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
我认为问题始于以下几行:
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
替换为this
。如果在此处附加整个component.ts文件,那就更好了。
我认为问题始于以下几行:
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);
this.items = this.img.map(item =>
new ImageItem({ src: item.value, thumb: item.value })
);
this.basicLightboxExample();
this.withCustomGalleryConfig();
}
}).catch();
});
}
您可以删除self
变量,然后将self
替换为this
。如果在此处附加整个component.ts文件,那就更好了。
我认为问题始于以下几行:
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