前几天遇到了这个问题,百度了一下也没有解决方案,记录一下 例:const test = computed(() => i * 2 ) 我是直接修改了 test 的值就报了这个错 [Vue warn] Write operation failed computed value is readonly test 的值不能修改,只能通过计算得到。 解决办法就是把 computed 改成 watch
vue3 里,computed 也可以加 setter 了:
https://v3.cn.vuejs.org/guide/computed.html#%E8%AE%A1%E7%AE%97%E5%B1%9E%E6%80%A7%E7%BC%93%E5%AD%98-vs-%E6%96%B9%E6%B3%95
如果你的场景下,计算出来的新属性和原有属性之间并不是强关联(任意一边变了,都需要另一边立即响应产生相应改变),那用 watch 更好,提供的操作会更自由。
谢谢大佬,又学到了