亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

v-for列表渲染后,向數組中push元素無法觸發試圖更新,是怎么回事呢?

v-for列表渲染后,向數組中push元素無法觸發試圖更新,是怎么回事呢?

撒科打諢 2018-08-10 10:10:46
<template>    <header @click="loadMore"></header>    <ul>        <li v-for="item in list">            {{$index}}-{{item}}        </li>    </ul></template><style> </style><script>    let fn = {        data(){            return {                list:[0,0,0,0,0,0]            }        },        methods:{            loadMore() {                for (var i = 0 ; i<10; i++ ){                    this.list.push(i)                }            }        }    };    export default fn;</script>點擊header,console.log出來的list數組中項是正常增加的,但是視圖不會更新,甚至<li>還減少了一個,但是只會減少一次,之后再點擊就不會減少。而且列表一開始就是從第七項開始渲染的。請問這可能是什么原因呢?ps,我是用了餓了么前端的MintUI這個組件庫,這段代碼就是在使用其中的無線下拉組件時出錯的,不知道與組件庫是否有關系...
查看完整描述

1 回答

?
慕桂英3389331

TA貢獻2036條經驗 獲得超8個贊

你需要加track-by $index , 可能和vue處理重復數據的設計有關,想了解原因得去看看源碼

<template>

    <header @click="loadMore"></header>

    <ul>

        <li track-by="$index" v-for="item in list">

            {{$index}}-{{item}}

        </li>

    </ul>

</template>


查看完整回答
反對 回復 2018-09-26
  • 1 回答
  • 0 關注
  • 1544 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號