我一直试图了解在 Vue 中使用函数时如何获得反应值。
我有一个像这样的简单案例:
<v-simple-checkbox :value="isSelected(item)" @input="toggleSelect(item)" />
isSelected
并且toggleSelect
是方法(或者更确切地说是通过 Vue Composition API 公开的函数)。
它们被定义为:
let selection = {};
function toggleSelect(item) {
selection[item.id] = !selection[item.id]
}
function isSelected(item) {
return !!selection[item.id];
}
return {
isSelected,
toggleSelect,
other exposed things...
}
单击复选框时,我看到所有状态都已更新。但是 as:value
绑定到一个函数。它不会触发视图的更新。
这基本上是“用参数计算”的问题,我没有找到任何真正的答案。
我试过了,$forceUpdate
但也没有运气。