Coding computed 计算属性报错 [Vue warn] Write operation failed computed value is readonly

Kevin.zhao · 2022年06月27日 · 最后由 Kevin.zhao 回复于 2022年06月28日 · 5360 次阅读

前几天遇到了这个问题,百度了一下也没有解决方案,记录一下
例: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 更好,提供的操作会更自由。

共收到 2 条回复 时间 点赞

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 更好,提供的操作会更自由。

陈恒捷 回复

谢谢大佬,又学到了

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册