vue的警告需要解决吗(Vue 警告 Write operation failed: computed value is readonly)
导读:警告信息:...
警告信息:
浏览器控制台警告:Write operation failed: computed value is readonly
使用环境:
Vue 3.2.41
Chrome x64 v103.0.5060.66
报错情景:
利用Vue的响应式修改某个值时出现该警告 。
<template> {{ msg }} <br> <button @click="add">+</button> </template> <script setup lang="ts"> import { computed, ref} from vue const x = ref(-) // 计算属性 const msg:any = computed(()=>{ return x.value + - }) // 修改 计算属性的值 的方法 const add = () => { msg.value = msg.value + ??? } </script>报错原因:
修改的值是计算属性 ,而计算属性是只读的 。所以无法修改 。
解决方法:
为计算属性配置修改方法 ,如下:
<script setup lang="ts"> import { computed, ref} from vue const msg = ref(-) // 计算属性 const computedMsg: any = computed({ get() { // 这里返回的值是获取计算属性的值 return msg.value + - }, set(newValue) { // 参数newValue是被修改后的值 // 这里是修改的具体逻辑 /* 注意这里不要使用下面的方法修改计算属性的值来达到修改目的 而应该直接修改源响应数据xxx的值 */ msg.value = newValue // computedMsg.value = newValue } }) // 修改 计算属性的值 的方法 const add = () => { computedMsg.value = computedMsg.value + ??? } </script>参考:
计算属性 | Vue.js
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!