【发布时间】:2021-03-17 19:02:09
【问题描述】:
我被卡住了,我是 vue 和 vuex 的新手,当我运行下面的代码时,我遇到了这个错误。我已经在这里搜索了其他一些问题,但我找不到解决方案
[Vue warn]: Computed property "vat" was assigned to but it has no setter.
found in
---> <BusinessList>
<App> at src/App.vue
<Root>
有人可以帮我吗?
-> 下面是带有代码的文件
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>
【问题讨论】:
-
这是因为
vat是来自您的商店的计算属性,但您已将其分配为v-model属性,它将尝试写入该值。相反,将本地值保存为v-model并在该值更改时更新存储,以便您进行正确的双向通信。
标签: vue.js vuex getter-setter