关于使用Vuex getters属性报错

本文探讨了在Vue项目中,如何修复由于在Vuex computed属性中使用v-model导致的'editableTabsValue'无setter错误。提供两种解决方案:一是通过创建getter和setter重定义,二是将v-model更改为:value以实现单向数据流。
摘要由CSDN通过智能技术生成

Computed property "editableTabsValue" was assigned to but it has no setter.问题解决

vuex的使用中报这个错误,原因是v-model双向绑定造成

vuex中是单项流,v-model是vue中的双向绑定,但是在computed中只通过get获取参数值,没有set无法改变参数值

解决方法:1.给editableTabsValue重新赋值给一个变量 设置getter,setter

<el-tabs v-model="editableTabsValue" type="card" @tab-click="tabClick" @tab-remove="removeClick">
        <el-tab-pane :key="item.name" v-for="(item, index) in editableTabs" :label="$t(`menus.${item.name}`)"
            :name="item.name" :closable="item.closable"></el-tab-pane>
</el-tabs>

computed: {
        ...mapGetters(['editableTabs','editableTabsValue']),
        defaultTabs: {
            get() {
                return this.editableTabsValue
            },
            set(v) {
                this.editableTabsValue = v
            }
        } 
     }

2.或者把v-model换成 :value

 

<el-tabs :value="editableTabsValue" type="card" @tab-click="tabClick" @tab-remove="removeClick">
        <el-tab-pane :key="item.name" v-for="(item, index) in editableTabs" :label="$t(`menus.${item.name}`)"
            :name="item.name" :closable="item.closable"></el-tab-pane>
</el-tabs>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值