Vue.js Vue/Vuex/Axios,计算属性已分配给,但它没有setter

Vue.js Vue/Vuex/Axios,计算属性已分配给,但它没有setter,vue.js,vuex,getter-setter,Vue.js,Vuex,Getter Setter,我被卡住了,我是vue和vuex的新手,当我运行下面的代码时,它给了我这个错误。我在这里搜索了一些其他问题,但找不到解决方案 [Vue warn]: Computed property "vat" was assigned to but it has no setter. found in ---> <BusinessList> <App> at src/App.vue <Root> [Vue w

我被卡住了,我是vue和vuex的新手,当我运行下面的代码时,它给了我这个错误。我在这里搜索了一些其他问题,但找不到解决方案

[Vue warn]: Computed property "vat" was assigned to but it has no setter.

found in

---> <BusinessList>
       <App> at src/App.vue
         <Root>
[Vue warn]:计算属性“vat”已分配给,但它没有设置器。
发现于
---> 
在src/App.vue
有人能帮我吗

->下面是包含代码的文件

BusinessList.vue

<script>
// import BusinessDataService from "../services/BusinessDataService";
import { mapGetters, mapActions } from "vuex";

export default {
  name: "BusinessList",
  methods: {
    ...mapActions(["fetchBusinesses", "searchBusiness"])
  },
  computed: mapGetters(["allBusinesses", "vat"]),
  created(){
    this.fetchBusinesses();
  },
  mounted() {
    this.searchBusiness(this.vat);
  }
};
</script>

<template>
<!-- SEARCH FORM -->
                <div class="input-group input-group-md">
                    <input
                    class="form-control form-control-navbar"
                    type="search"
                    placeholder="Search by Vat"
                    aria-label="Search"
                    v-model="vat"
                    />
                    <div class="input-group-append">
                    <button class="btn btn-outline-danger" 
                    type="submit"
                    @click="searchBusiness"
                    >
                        <i class="fas fa-search"></i>
                    </button>
                    </div>
                </div>
</template>

//从“./services/BusinessDataService”导入BusinessDataService;
从“vuex”导入{MapGetter,mapActions};
导出默认值{
名称:“业务列表”,
方法:{
…映射操作([“FetchBusiness”、“searchBusiness”])
},
计算:mapGetters([“所有业务”,“增值税]),
创建(){
这个;
},
安装的(){
本.搜索业务(本.增值税);
}
};

在vue computed中,默认情况下设置为getter,这意味着如果要将值设置为computed,则应在该computed中定义setter。以下是有关此主题的更多信息的vue文档:


现在,您已经从vuex store设置了计算的“vat”,并将其用作模板中的v模型。这意味着,每当输入数据发生更改时,vue都会尝试将一个值分配给没有setter的computed,因此会出现此错误。应将
v-model
设置为
数据中的变量,并重构代码以反映此更改。

在vue computed中,默认情况下,如果要将值设置为computed,则应在该computed中定义setter。以下是有关此主题的更多信息的vue文档:


现在,您已经从vuex store设置了计算的“vat”,并将其用作模板中的v模型。这意味着,每当输入数据发生更改时,vue都会尝试将一个值分配给没有setter的computed,因此会出现此错误。您应该将
v-model
设置为
数据中的一个变量,并重构代码以反映此更改。

这是因为
vat
是来自存储的计算属性,但您已将其指定为
v-model
属性,它将尝试写入该值。相反,保留一个本地值作为
v-model
,并在该值更改时更新存储,以便进行适当的双向通信。这是因为
vat
是来自存储的计算属性,但您已将其指定为
v-model
属性,该属性将尝试写入该值。相反,保留一个本地值作为
v-model
,并在该值更改时更新存储,以便进行适当的双向通信。