我有一個帶 v-for 的 h1,我正在從我的數組中寫出一些東西,它看起來像這樣: <h1 v-for="(record, index) of filteredRecords" :key="index" :record="record" :class="getActiveClass(record, index)" > <div :class="getClass(record)"> <strong v-show="record.path === 'leftoFront'" >{{ record.description }} </strong> </div> </h1>如您所見,我綁定了一個類(getActiveClass(record,index) --> 將我的記錄和索引傳遞給它)這是我的 getActiveClass 方法:getActiveClass(record, index) { this.showMe(record); return { "is-active": index == this.activeSpan }; }我正在調用一個名為showMe的函數,將我的記錄傳遞給它,這就是問題開始的地方 showMe 方法是針對我的 setInterval 所以基本上它的作用是我的數組中有多個對象并且它正在設置間隔所以當記錄.該記錄的時間結束,然后切換到下一個記錄??雌饋硐襁@樣: showMe(record) { console.log(record.time) setInterval(record => { if (this.activeSpan === this.filteredRecords.length - 1) { this.activeSpan = 0; } else { this.activeSpan++; } }, record.time ); },此 activeSpan 確保“is-active”類(見上文)正確更改?,F在我的問題是,當我打印它時,record.time 無法正常工作,例如,如果我的數組中有兩個對象,它會在控制臺記錄我兩次。所以它沒有正確地改變到它的記錄。時間它只是變化得非???,隨著時間的流逝,它顯示了我的記錄中非??焖俚难h。這是為什么?我怎樣才能正確設置它,以便當我獲得一條記錄時,它的間隔將是 record.time(屬于它的),并且當記錄更改時它再次執行相同的操作(收聽它的 record.time)例如 :filteredRecords:[{description:"hey you",time:12,id:4,},{description:"hola babe",time:43,id:1},]它應該首先顯示“嘿你”文本,它應該顯示 12 秒,然后它應該顯示“hola babe”43 秒。
如何修復 setInterval 錯誤?
人到中年有點甜
2022-12-22 12:52:22
