我有一个数组:

basicForm.schema = [
  {},
  {} // I want to watch only this
]

我试着这么做:

‘basicForm.schema[1].value’: {
  handler (schema) {
    const plan = schema.find(field => {
      return field.name === ‘plan’
    })
  },
  deep: true
},

但我犯了一个错误:

vue.js?3de6:573[Vue warn]:监视路径失败:

正确的方法是什么?

推荐答案

你可以 Select watch a computed property:

new Vue({
  el: '#app',
  data: {
    basicForm: {
      schema: [
      	{a: 1},{b: 2} // I want to watch only this
      ]
    }
  },
  computed: {
    bToWatch: function() {
      return this.basicForm.schema[1].b
    }
  },
  methods: {
    incB: function() {
      this.basicForm.schema[1].b++
    }
  },
  watch: {
    bToWatch: function(newVal, oldVal) {
      console.log(newVal)
    }
  }
});
<script src="https://unpkg.com/vue/dist/vue.js"></script>

<div id="app">
  <button @click="incB()">Inc</button>
</div>

Vue.js相关问答推荐

当props 的值改变时如何更新类'

Vue3:如何在功能组件中重用插槽vnode

vue 不重新渲染数据更改

vue3 ssr 不返回纯 html

为什么将 name 与 router-link 一起使用比仅使用 to 与 path 更好?

带有 netlify.toml 文件的环境变量

Vue CLI - 编译后将配置文件保留为外部

在 VueJS 中存储图像的正确位置是什么 - 公共文件夹或assets文件夹?

使用数组元素的计算(computed)属性

Vuelidate 判断true/false

Vue.js 中的 mount挂载是什么意思?

所有 vue props和数据都给出错误 Property属性在 type 上不存在,带有 typescript

如何将 git hash 添加到 Vue.js 组件

在 nuxt.js 页面中包含外部 javascript 文件

如何在 JEST 测试中模拟全局 Vue.js 变量

vue-router如何持久化导航栏?

Bootstrap-vue:如何将数据传递给模态?

Vue 2.0 设置路由 - 不要使用new来产生副作用

vuejs 中缺少 webpack 配置

Vue-i18n - 无法读取未定义的属性配置