vue数据更新,视图未更新的情况怎么解决?

图片描述

代码是这样的,我更改后的bookData我打印出来发现是已经更改了,但是视图的数据未发生改变,请问这是什么原因导致的呢?

阅读 9.5k
2 个回答

由于 JavaScript 的限制, Vue 不能检测以下变动的数组:
当你利用索引直接设置一个项时,例如: vm.items[indexOfItem] = newValue
当你修改数组的长度时,例如: vm.items.length = newLength
为了解决第一类问题,以下两种方式都可以实现和 vm.items[indexOfItem] = newValue 相同的效果, 同时也将触发状态更新:
// Vue.set
Vue.set(example1.items, indexOfItem, newValue)
// Array.prototype.splice`
example1.items.splice(indexOfItem, 1, newValue)
为了解决第二类问题,你也同样可以使用 splice:
example1.items.splice(newLength)


摘自vue文档

this.bookData[this.currentBookIndex]必须先定义数据结构, 不然vue监听不到

this.bookData.push( {title:'', id: ''}), 这样vue可以监听到, 会自动绑定数据到视图

https://github.com/MaiYuan/Ad...
这个是我写的一个文件, 和你的需求一样

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