Vue computed property values was assigned to but it has no setter

vue 文件中的核心代码写法

<template>
  <div>
    <v-select
      :items="filters"
      label="查询条件"
      solo
      dense
      class="select-size"
      v-model="filterKey"
      clearable
    ></v-select>
  </div>
</template>
<script>
import { mapState, mapActions } from 'vuex'
export default {
  data () {
    return {
    }
  },
  computed: {
    ...mapState({
      filters: state => state.table.filters,
      filterKey: state => state.table.filterKey
    })
  }
}
</script>

使用了 vuex 中的值来显示内容, 然后报错[Vue warn]: Computed property "filterKey" was assigned to but it has no setter.

解决方案

由于数据从 store 中来, 不能直接对数据修改, 因此, 使用 data 的值绑定 v-model 然后, data 数据在初始化时使用 store 的值就可以了.

调整后的vue文件

<template>
  <div>
    <v-select
      :items="filters"
      label="查询条件"
      solo
      dense
      class="select-size"
      v-model="key"
      clearable
    ></v-select>
  </div>
</template>
<script>
import { mapState, mapActions } from 'vuex'
export default {
  data () {
    return {
      key: null
    }
  },
  created () {
    this.key = this.filterKey
  },
  computed: {
    ...mapState({
      filterKey: state => state.table.filterKey
    })
  }
}
</script>

 

posted @   土小狗  阅读(552)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示