问题描述
用uniapp开发小程序过程中遇到了Computed property "xxx" was assigned to but it has no setter.这个报错。看来是计算属性出现了问题。
不过这个报错更像是警告,因为该计算属性可以正常用,没有产生任何问题,但我还是看它不爽,必须要给它解决掉!
问题产生原因
其实单看翻译我们就能明白为什么会产生该报错,无非是少了个setter,原因就是在Vue中计算属性不仅有一个getter还有一个setter,如果我们只需要获取该计算属性而不考虑修改该计算属性,那么我们往往会只声明getter而忽略掉setter,此时就会引发报错。
只有getter的计算属性如下所示:
computed: {
// 计算属性的 getter
reversedMessage(){
return this.message.split('').reverse().join('')
}
}
解决方案
既然报错提示我们的计算属性没有setter,那就在计算属性中添加个空的setter不就好了嘛。
computed: {
// 计算属性的 getter
reversedMessage:{
get(){
return this.message.split('').reverse().join('')
},
set(){}//添加一个空setter防止报错
}
}
此时再编译就不会报错了。