如程式碼所示,foreach循環後產生的資料只是最後一個嗎?我console.log(index);控制台可以打出來0,1,2,3,4啊,但是最後顯示在頁面上的圖片都是case:4 時的圖片。
this.items.forEach((item:any) => {
// var index = this.items.indexOf(item);
// console.log(index);
// this.index.push(index);
switch (this.items.indexOf(item)){
case 0: this.imgSrc ='assets/liangshi.png';
break;
case 1: this.imgSrc ='assets/xiela.png';
break;
case 2: this.imgSrc ='assets/xuansuo.png';
break;
case 3: this.imgSrc ='assets/ganggou.png';
break;
case 4: this.imgSrc ='assets/gongqiao.png';
break;
default:
this.imgSrc = 'assets/ICON4TEST.png';
}
});
這個是顯示在頁面上的效果,圖片全是最後一個
你使用了同一個變數來傳遞圖片,最後一定都被gongqiao.png給覆蓋了啊。
如果你想針對數組中每一個元素儲存一個對應的圖片,你應該用一個數組啊。
可能是因為this.imgSrc最後取的值是4,前面的值沒儲存或沒進行後續操作
不要在javascript的箭頭函數裡用this
不要在javascript的箭頭函數裡用this
不要在javascript的箭頭函數裡用this