javascript - v-for列表渲染后,向数组中push元素无法触发试图更新,是怎么回事呢?
PHP中文网
PHP中文网 2017-04-11 12:03:30
[JavaScript讨论组]




点击header,console.log出来的list数组中项是正常增加的,但是视图不会更新,甚至

  • 还减少了一个,但是只会减少一次,之后再点击就不会减少。
    而且列表一开始就是从第七项开始渲染的。

    请问这可能是什么原因呢?


    ps,我是用了饿了么前端的MintUI这个组件库,这段代码就是在使用其中的无线下拉组件时出错的,不知道与组件库是否有关系...

  • PHP中文网
    PHP中文网

    认证高级PHP讲师

    全部回复(3)
    大家讲道理

    你需要加track-by $index , 可能和vue处理重复数据的设计有关,想了解原因得去看看源码

    <template>
        <header @click="loadMore"></header>
        <ul>
            <li track-by="$index" v-for="item in list">
                {{$index}}-{{item}}
            </li>
        </ul>
    </template>
    
    怪我咯

    使用开发版的 Vue.js 文件,打开控制台可以看到出错信息:

    [Vue warn]: Duplicate value found in v-for="item in list": 0. Use track-by="$index" if you are expecting duplicate values.
    

    给 li 元素添加 track-by="$index" 属性就可以了。

    黄舟

    header未闭合不知有没关系

    热门教程
    更多>
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号