Vue3中基于另一computed定义的title computed未正常更新如何解决
问题根因
editMode是computed方法返回的Ref包装对象,而非实际的布尔值。在JavaScript中,所有非空对象做布尔判断时都会被转换为true,因此你的title计算属性的三元判断永远命中'Details'分支,不会响应editMode的实际值变化。- 额外说明:只有在
<template>模板中使用computed值时才会自动解包,在<script>的逻辑代码中必须显式访问.value才能拿到实际存储的值。
修复方法
修改title计算属性的逻辑,显式访问editMode.value取实际布尔值即可:
setup(props) { const {id} = toRefs(props) const editMode = computed(() => { return id.value !== 0 }) const title = computed(() => { // 显式取.value拿到computed存储的实际布尔值 return editMode.value ? 'Details' : 'New' }) }
内容的提问来源于stack exchange,提问作者calin24
相关产品推荐
相关产品推荐

