Quasar中如何通过函数修改ref变量值?尝试toggleText未生效
问题解决:无法修改ref变量的值
你代码里的问题很明确:用ref()创建的响应式变量,不能直接覆盖整个变量,必须修改它的.value属性。
原代码里直接写showText = idx,相当于把showText从ref响应式对象换成了普通的idx值,既丢了响应式,也没真正修改原来的ref变量内容。
修正后的代码如下:
let showText = ref('') const toggleText = function (idx){ showText.value = idx // 关键:通过.value修改ref内部的值 return showText.value // 要是需要返回当前值,也得取.value } return { MYITEMS, toggleText, showText, }
简单说下原理:Vue的ref会把基本类型值包装成一个响应式对象,只有操作这个对象的.value属性,才能触发响应式更新,UI也会跟着同步变化。直接覆盖变量的话,就破坏了这个响应式绑定。
内容的提问来源于stack exchange,提问作者Sona Rijesh
相关产品推荐
相关产品推荐

