Vue3 怎么修改 绑定了ref 元素的属性

console.log(ref1) 打印 ref1元素如下:

Proxy {…}
  [[Handler]]: Object
  [[Target]]: Object
  align: (…)
  className: (…)
  columnKey: (…)
  filterMethod: (…)
  filterMultiple: (…)
  filterPlacement: (…)
  filteredValue: (…)
  filters: (…)
  fixed: (…)
  formatter: (…)
  headerAlign: (…)
  index: (…)
  label: (…)
  labelClassName: (…)
  minWidth: (…)
  prop: (…)
  property: (…)
  renderHeader: (…)
  reserveSelection: (…)
  resizable: (…)
  selectable: (…)
  showOverflowTooltip: (…)
  showTooltipWhenOverflow: (…)
  sortBy: (…)
  sortMethod: (…)
  sortOrders: (…)
  sortable: (…)
  type: (…)
  width: (…)

比如我可以用 ref1.label 正常获到 label的值,
但是, ref1.label = 'd12", 我不能这样改写,ref1.set.label="d12" ,这样也不行
ref1.label.value='d12' 也不成
报错如下

runtime-core.esm-bundler.js:6764 Uncaught TypeError: 'set' on proxy: trap returned falsish for property 'label'

请问要怎么增删改 ,这里面的属性

试一下ref.label.value = "d12"

ref绑定的是一个对象,没有真实的dom,你需要把ref赋值的变量比如tableData,tableData.value才能取到值进行修改dom

另一个思路,不用ref属性,直接把label绑定到你的data里,然后更新data。

这样就行了

img

img

this.$refs.ref1.label.value

你这个ref怎么绑定的,
引入nextTick ,在nextTick 里修改
import { ref,nextTick } from 'vue';

nextTick(() => {
ref1.lable= 'newValue'
})