我有下面的代码。

data():{
   coor: [
          { "name": '',
            "shoes": '' },
          { "name": '',
            "shoes": '' }
         ]

watch:{
   coor: {
       handler(){
          console.log('changed')
       }
       ,deep: true
   }
}


在这种情况下,如果更改了coor中的任何一个值,则手表将起作用。
但我的目标是我想将案例一分为二,如下所示。

watch:{
       coor.name: {
           handler(){
              console.log('The name is changed')
           }
           ,deep: true
       },
       coor.shoes: {
           handler(){
              console.log('The shoes are changed')
           }
           ,deep: true
       }
    }


但是它不能很好地工作。我怎么解决这个问题?非常感谢您的阅读。

最佳答案

创建要观看的商品的计算属性,然后观看。

computed {
  filteredAny(){
    return this.coor;
    // you can also use map here and combine values to create a key.
    // return this.coor.map(it=>it.shoes+':'+it.name)
  },
  filteredShoes(){
    return this.coor.map(it=>it.shoes);
  },
  filteredName(){
    return this.coor.map(it=>it.name);
  }

}

watch {
  // deep not needed.
  filteredShoes(){
    console.log('The shoes are changed');
  }

}

关于javascript - 如何在Vuejs中的同一数组中观看其他键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58039474/

10-11 13:15