问题描述
本人刚接触前端,属于用到什么学什么的那种,所以基础不是很牢。今天开发中遇到了这个问题,实在搞不懂,前来咨询各位大佬。
在quasar+vue3项目下,控制台报错TypeError: Assignment to constant variable.
相关代码
粘贴代码文本(请勿用截图)
const a =ref(true)
function func(){
a = false
}
问题出现的环境背景及自己尝试过哪些方法
将a 放进另一个变量中可以正常赋值了
const data = reactive({
a:true
})
function func(){
data.a = false
}
ref和reactive是把数据做可响应处理,那么为什么放进另一个变量中才不会报错,我不太理解
谢谢各位解答
根据vue3文档中ref部分的描述:
接受一个内部值并返回一个响应式且可变的 ref 对象。ref 对象具有指向内部值的单个 property .value。
根据mdn上的描述https://developer.mozilla.org...
const 定义一个常量
在题目中
const a = ref(true)
根据文档中的说法,想要改变a的值,需要用a.value。事实证明,
a.value = false
是可行的。感谢“lordGuan”提出的很逗的例子,感谢“未选择的路”让我去看文档。文档确实非常有用,而且不注意你就会疏忽掉一些东西。问题出现的原因也是我基础不扎实导致的,竟然都忘了ref需要.value用