vue Set给嵌套对象添加属性到底哪种形式是对的

我是谁
  • 90

// 这是data数据结构
data: 
allTableConfig: {
    parameters: {
        pie_filter:{}
    },
  },

// 子组件传过来一个对象 要传给表格组件监听
// 为什么只有最后一种被watch allTableConfig监听到了,其他的只有首次点击被监听
// 可是我希望是中间的 因为最后是覆盖 我还要给parameters传其他参数
pieSendval(val) {
   this.allTableConfig.parameters.pie_filter = val
  // 这种在写法上有什么错误吗
  this.$set(this.allTableConfig.parameters, 'pie_filter', val)

  this.$set(this.allTableConfig, 'parameters', { pie_filter: val })
},
评论
阅读 201
3 个回答
// 第二种写法
for (let [key, value] of Object.entires(val)) {
    this.$set(this.allTableConfig.parameters.pie_filter, key, value)
}

新增pie_filter对象的属性

this.$set(this.allTableConfig.parameters, 'pie_filter', val)

这种写法没有把allTableConfig转换为响应式的对象,所以即是你加了deep也监听不到变化。

撰写回答

登录后参与交流、获取后续更新提醒

宣传栏