vue.js组件改变了数据,但是dom并没有刷新

clipboard.png

clipboard.png

clipboard.png

改变了值,但是dom并没有刷新,求问什么情况?

第二个select的数据已经是{},但是dom上还是显示“全部city”

阅读 58.7k
4 个回答

文档中说过这个问题,链接
改变数组元素使用 $set() 或 vue 包装过的变异方法

因为 JavaScript 的限制,Vue.js 不能检测到下面数组变化:

  1. 直接用索引设置元素,如 vm.items[0] = {};

  2. 修改数据的长度,如 vm.items.length = 0。

为了解决问题 (1),Vue.js 扩展了观察数组,为它添加了一个 $set() 方法:

// 与 example1.items[0] = ... 相同,但是能触发视图更新
example1.items.$set(0, { childMsg: 'Changed!'})
至于问题 (2),只需用一个空数组替换 items。

改成这样试试:

this.filter.condition[0].children.$set(1, {});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题