v-for 里面嵌套methods 的方法,造成死循环

<div class="history">
  <ul>
  <template v-for="(item,index) in historyList.elementList" >
   <li :id="('lishi_'+index)" :key="index" :class="{'historyHover':pos==2&&itemNo==(index)}" >
      <img :src="item.assetImg?item.assetImg:item.elementImg" />
      <div class="h_progress" v-show="!(pos==2&&itemNo==(index))">
        <p v-show="item.assetType!= undefined && item.assetType!='Movie'">第{{parseInt(item.episode)}}集</p>
        <p v-if="item.recordTime!= undefined && item.recordTime!= '0'">观看至{{getWatchTime(item.recordTime,index)}}</p>
      </div>
      <span class="history-title" v-show="(pos==2&&itemNo==(index))">{{item.assetName?item.assetName:item.elementName}}</span>
    </li>
    </template>
  </ul>
</div>

created () {
this.jsonData = this.initData;
if (this.jsonData.elementList[0].elementList){
  this.eleId = this.jsonData.specialId;
  this.swipeList = this.jsonData.elementList[0].elementList;
  this.bgPhoto = this.swipeList[0].elementImg;
  this.rec = this.jsonData.elementList;
  this.historyList = this.jsonData.elementList[3];
  this.timeTask();
}
try {
  let historyData = JSON.parse(localStorage.getItem('historyList'));
  console.log(historyData);
  console.log('历史记录类型' + JSON.stringify(historyData));
  if (historyData.length == 0) return;
  if (historyData.length >= 2){ historyData = historyData.slice(0, 2) };
  this.historyList.elementList = historyData;
} catch (error) {

}

},
activated () {

try { // 缓存被激活需要重新获取历史记录
  let historyData = JSON.parse(localStorage.getItem('historyList'));
  console.log('缓存激活' + JSON.stringify(historyData));
  if (historyData.length == 0) return;
  if (historyData.length >= 2){ historyData = historyData.slice(0, 2) };
  this.historyList.elementList = historyData;
} catch (error) {
  console.log('获取历史记录异常');
}

},
methods: {

getWatchTime (ms, index){
  console.log('当前历史记录位置:' + index);
  console.log('当前观看时间毫秒:' + ms);
  // return new Date(parseInt(ms)).format('mm:ss');
},


clipboard.png

有人知道嘛!

阅读 4.5k
1 个回答

老铁,写法有问题

{{getWatchTime(item.recordTime,index)}}

这么写在渲染的时候就直接调用方法了,你应该是在某些时候来触发这个方法,比如点击事件或者其他

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题