我正在尝试让computed
在<script setup>
中工作:
<template>
<div>
<p>{{ whatever.get() }}</p>
</div>
</template>
<script setup>
import {computed} from "vue";
const whatever = computed({
get() {
console.log('check')
return 'check?';
}
})
</script>
console.log()
通过,但return
语句似乎抛出了一个错误:
check
Vue warn]: Unhandled error during execution of render function
at <Cms>
Uncaught TypeError: $setup.whatever.get is not a function
at Proxy.render (app.js?id=d9e007128724c77a8d69ec76c6c081a0:39550:266)
at renderComponentRoot (app.js?id=d9e007128724c77a8d69ec76c6c081a0:25902:44)
at ReactiveEffect.componentUpdateFn [as fn] (app.js?id=d9e007128724c77a8d69ec76c6c081a0:30019:57)
at ReactiveEffect.run (app.js?id=d9e007128724c77a8d69ec76c6c081a0:23830:29)
at setupRenderEffect (app.js?id=d9e007128724c77a8d69ec76c6c081a0:30145:9)
at mountComponent (app.js?id=d9e007128724c77a8d69ec76c6c081a0:29928:9)
at processComponent (app.js?id=d9e007128724c77a8d69ec76c6c081a0:29886:17)
at patch (app.js?id=d9e007128724c77a8d69ec76c6c081a0:29487:21)
at render (app.js?id=d9e007128724c77a8d69ec76c6c081a0:30630:13)
at mount (app.js?id=d9e007128724c77a8d69ec76c6c081a0:28882:25)
我做错了什么?
2条答案
按热度按时间gajydyqb1#
在 * *
<template>
* * 中 :仅 Getter :
{{ myVal }}
<p v-text="myVal" />
获取 器 和 设置 器 :
<input v-model="myVal">
myVal.get()
或myVal.set(value)
! 使用 :myVal
myVal = value
在 * *
<script setup>
* * 中 :仅 Getter :
中 的 每 一 个
获取 程序 和 设置 程序 :
格式
当 reactive ref 来自 一 个
reactive()
对象 的 属性 时 , 你 不 需要 在 setter 或 getter 中 使用.value
。 例如 :格式
请 记住 , 您 始终 可以 在
reactive
中 使用computed
。 例如 :第 一 个
computed
时 , Vue 将 警告 您 ( 不 需要 计算 的 Package 器 ) 。shallowRef
或markRaw
。j5fpnvbx2#
计算属性以字段的形式出现。无论你是传入函数(如
computed(() => /*...*/)
)还是用get()
方法(如果你没有提供set()
方法,这里是等效的)传入对象,都是如此。模板应该只使用计算属性的名称,这里是
whatever
。