当前位置: 首页 > 知识库问答 >
问题:

前端 - vue3+ts reactive自动解包ref 后 再次赋值ts总是提示类型错误?

夏侯玄天
2023-06-26
  const a = ref(1)
  const b = reactive({
    a
  })
  b.a=2 //这行会提示不能将类型“number”分配给类型“Ref<number>”。ts(2322)
         // const b: {
         //   a: globalThis.Ref<number>;
         //}

共有2个答案

邹山
2023-06-26

为什么有这样写 正常写不就好了吗

岳锦
2023-06-26
方法一:
const a = ref(1);
const b = reactive({
  a: a.value // 将`a`的值赋给`b.a`,而不是`ref`本身
});
b.a = 2; // 现在你可以直接向`b.a`赋新值
方法二:
const a = ref(1);
const b = reactive({
  a: computed({
    get: () => a.value,
    set: val => a.value = val
  })
});
b.a = 2; // 这将同时修改 `b.a` 和 `a.value`

 类似资料: