简体   繁体   English

Vue 3 组合 api 计算属性 = 模板未更新

[英]Vue 3 composition api computed property = template not updated

I have a computed property but it is not working我有一个计算属性,但它不工作

I can see that currentMode is changing with the console.log我可以看到currentMode正在随着 console.log 发生变化

but my template is not updating但我的模板没有更新

template: <div v-if="editMode"></div>模板: <div v-if="editMode"></div>

setup:设置:

setup(props, context) {

let currentMode = null
const modes = {
   view:'view',
   edit:'edit',
   create:'create'
}
const editMode = computed(() => {
   return currentMode === modes.edit
});

const toggleMode = () => {
  if (currentMode === modes.edit ){
    currentMode = modes.view
    console.log(currentMode)
    return
  }  else {
    currentMode = modes.edit
    console.log(currentMode)
  }
}

return {editMode, toggleMode}

Try to make modes reactive尝试使模式反应

let currentMode = ref(null)
const modes = ref({
  view:'view',
  edit:'edit',
  create:'create'
})
const editMode = computed(() => {
  return currentMode.value === modes.value.edit
});

const toggleMode = () => {
  if (currentMode.value === modes.value.edit ){
    currentMode.value = modes.value.view
    console.log(currentMode.value)
    return
  }  else {
    currentMode.value = modes.value.edit
    console.log(currentMode.value)
  }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM