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

  const a = ref(1)
  const b = reactive({
    a
  })
  b.a=2 //这行会提示不能将类型“number”分配给类型“Ref<number>”。ts(2322)
         // const b: {
         //   a: globalThis.Ref<number>;
         //}
阅读 3k
2 个回答
方法一:
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`

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏