vue3中reactive变量不能赋值的问题:const a=ref(true); a=false报错?

vue3中reactive变量不能赋值的问题:const a=ref(true); a=false报错?

问题描述

本人刚接触前端,属于用到什么学什么的那种,所以基础不是很牢。今天开发中遇到了这个问题,实在搞不懂,前来咨询各位大佬。
在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用


回答:

https://vue3js.cn/docs/zh/api... 多看文档


回答:

const a = true

老板让a盯着一把钥匙,并且告诉a谁都不能动这把钥匙,雷打不动。老板娘来了让a把钥匙叫出来,但又不能闲着,就给了a一个皮球。a一下就不乐意了,老板的吩咐打死都不行,于是把老板娘锤了一顿。

const a = {

b: true

}

老板让a盯着一个盒子,这个盒子里放了一把钥匙,并且告诉a谁都不能动这个盒子,雷打不动。老板娘来了使用隔空取物把盒子里的钥匙换成了一个皮球,盒子纹丝不动,a表情严肃的盯着盒子。老板娘笑着离开了。小组长又来了,想用一个鼠标换a盯着的盒子,a一下就不愿意了,把小组长给锤了一顿。

以上是 vue3中reactive变量不能赋值的问题:const a=ref(true); a=false报错? 的全部内容, 来源链接: utcz.com/p/935748.html

回到顶部