在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
项目场景:在页面显示上有一个<ul>标签,我们需要动态进行列表数据的展示,而由于我们的页面上除了列表值,还有其他的值要进行展示,因此列表数据的数据结构是某个对象下面的数组,在动态修改数据后发现没有进行自动渲染。 问题描述:在点击按钮“click me!”时虽然数据有变化且在控制台进行了输出,但是列表数据并没有发生渲染。 <script src="https://unpkg.com/vue/dist/vue.js"></script> <div id="app"> <button @click="pushDataToDataList">click me!</button> <ul> <li v-for="(item, i) in form.dataList" :key="item"> {{ i + ":" + item }} </li> </ul> </div> <script> let app = new Vue({ data: function() { return { form: {} } }, methods: { pushDataToDataList() { if (this.form.dataList == null) { this.form.dataList = [] } this.form.dataList.push("abc" + this.form.dataList.length) console.log(this.form.dataList) } } }).$mount('#app') </script> 原因分析:在查阅了官方文档后我们发现下面这段话
原因到这里就明了了,我们的数据没有进行渲染是因为在一开始,data下的form中就没有
解决方案:1.在data下的form对象中,设置 data: function() { return { form: { dataList: null } } } 2.使用this.$set()方法 pushDataToDataList() { if (this.form.dataList == null) { // 先在form下设置下dataList属性 this.$set(this.form, 'dataList', []) } this.form.dataList.push("abc" + this.form.dataList.length) console.log(this.form.dataList) } 参考链接到此这篇关于Vue绑定对象与数组变量更改后无法渲染问题解决的文章就介绍到这了,更多相关Vue绑定对象与数组变量更改后无法渲染问题内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界! |
请发表评论