vuex报错Computed property “xxx“ was assigned to but it has no setter.

article/2025/10/6 10:43:08

当使用vuex存储数据时,常常有这样的需求:输入框显示并动态修改state中的数据。

我们第一个反应就是使用v-model直接绑定state中的数据,虽然确实可以显示和修改,但是控制台会报错,所以不能采取这种方式。

案例如下:

在使用vant组件库实现底部标签栏时,此标签栏在各个页面中都需要显示,故放在App.vue中。

<template><div id="app"><router-view></router-view><van-tabbar class="tab" v-model="activeTab" @change="changeActiveTab"><van-tabbar-item icon="home-o" to="/home">首页</van-tabbar-item><van-tabbar-item icon="apps-o" to="/cate">分类</van-tabbar-item><van-tabbar-item icon="cart-o" to="/cart" :badge="badgeCount">购物车</van-tabbar-item><van-tabbar-item icon="user-circle-o" to="my">我的</van-tabbar-item></van-tabbar></div>
</template><script>
import { mapState, mapGetters, mapMutations } from 'vuex'export default {data () {return {}},computed: {...mapState('m_user', ['activeTab']),// ...},methods: {...mapMutations('m_user', ['updateActiveTab']),changeActiveTab (index) {this.updateActiveTab(index)}}
}
</script>

activeTab:绑定选中标签的索引值,通过修改 v-model 即可切换选中的标签。

由于多个页面都可以切换标签,把activeTab作为公共变量存储到vuex中。updateActiveTab公共方法用于修改activeTab的值。

上面的代码可以切换标签,但是会报错:Computed property "activeTab" was assigned to but it has no setter.

解决办法:通过计算属性getter获取vuex中的值,通过setter来修改值。

这里新增一个计算属性active作为绑定值,利用getter和setter 来调用和修改公共变量activeTab。

<template><div id="app"><router-view></router-view><van-tabbar class="tab" v-model="active"><van-tabbar-item icon="home-o" to="/home">首页</van-tabbar-item><van-tabbar-item icon="apps-o" to="/cate">分类</van-tabbar-item><van-tabbar-item icon="cart-o" to="/cart" :badge="badgeCount">购物车</van-tabbar-item><van-tabbar-item icon="user-circle-o" to="my">我的</van-tabbar-item></van-tabbar></div>
</template>
<script>
import { mapState, mapGetters, mapMutations } from 'vuex'export default {data () {return {}},computed: {...mapState('m_user', ['activeTab']),// ...active: {get () { return this.activeTab },set (val) { this.changeActiveTab(val) }}},methods: {...mapMutations('m_user', ['updateActiveTab']),changeActiveTab (index) {this.updateActiveTab(index)}}
}
</script>

http://chatgpt.dhexx.cn/article/iTZRa8aG.shtml

相关文章

可编程渲染管线报错 Unity Universal RP asset not assigned

可编程渲染管线报错 Unity Universal RP asset not assigned 解决 1.创建urp资产 创建成功如下图 2.打开Edit > Project Settings… > Graphics 3.设置资产 如果你安装了URP包&#xff0c;当你编写自定义渲染管线时&#xff0c;既是你设置的上图资产也会报同样的错误。…

【Flink】FLink assigned slot xx was removed

1.概述 flink报错 org.apache.flink.util.FlinkException: The assigned slot container_e08_1539148828017_15937_01_003564_0 was removed. at org.apache.flink.runtime

Flink线上问题: The assigned slot container_xxx was removed

Flink线上问题: The assigned slot container_xxx was removed 客户现场使用Flink(on Yarn)进行数据抽取,Source是JDBC,Sink是Kafka,客户反映流程差不多跑10天左右就挂,让我看看. 环境: Flink: 1.5.2 jdk: 1.8.0_25 Hadoop: 2.4.1 jobmanger和TaskManger都分配1G内存 首先…

There‘s no Qt version assigned to project xxx.vcxproj for configuration Debug/x64

Qt系列文章目录 文章目录 Qt系列文章目录前言一、 分析错误原因二、解决步骤1.选择Qt版本2.检查环境变量3.重新构建工程 There’s no Qt version assigned to project xxx.vcxproj for configuration Debug/x64 前言 如果你想了解关于Qt与VS2019开发环境搭建&#xff0c;可以至…

SAP ABAP一组关键字 IS BOUND, IS NOT INITIAL和IS ASSIGNED的用法辨析

ABAP里的IS BOUND, IS NOT INITIAL和IS ASSIGNED这组关键字&#xff0c;如果平时不留心&#xff0c;很容易理解地似是而非。今天我们就来说一说它们的区别。 先把SAP帮助文档抄过来&#xff1a; IS BOUND It checks whether a reference variable contains a valid referenc…

【FLink】Assigned key must not be null

1.概述 我的flink任务报错Assigned key must not be null,但是我把keyby用到的字段已经提前做了非空过滤,还是偶尔会报这个错。 还没法复现这个问题。 对应的源码位于 public static int assignToKeyGroup(Object key, int maxParallelism) {Preconditions.checkNotNull(k…

xxx is assigned a value but never used 报错

xxx is assigned a value but never used报错 找到路径 package.json文件 -> devDependencies -> rules 添加以下代码 "rules": {"generator-star-spacing": "off","no-debugger": "off","no-tabs": &quo…

There is no Qt version assigned to project

问题描述&#xff1a;最近从用vs2017Qt5.13编写程序&#xff0c;从一台已经编译好的电脑上拷贝到另外一台有vs2017和Qt5.13环境的电脑&#xff0c;但是问题来了&#xff0c;出现了如下图片的描述&#xff1a; 解决方法&#xff1a;首先检查Qt Project Setting&#xff0c;如果界…

Unity Universal RP asset not assigned

Unity Universal RP asset not assigned 问题解决 问题 项目导入URP后&#xff0c;相机出现这个错误 解决 打开Edit > Project Settings… > Graphics在可脚本渲染管道设置字段中&#xff0c;添加前面创建的通用渲染管道资产。 参考: Unity Doc

IDEA报错private field “xxx“ is never assigned解决

文章目录 1.现象2.解决办法 1.现象 在IDEA中&#xff0c;开发Spring项目时&#xff0c;在一个类中使用Autowired注解注入成员变量时&#xff0c;IDEA会在该成员变量上报类似于如下警告&#xff1a; 一开始还以为是代码哪里配置的有问题&#xff0c;以前也没遇到过啊。 暂时怀…

Computed property was assigned to but it has no setter问题随记

初始代码&#xff1a;弹窗使用dialogtablvisible 但是其他位置改变了这个值 在methods中修改了这个属性的值 当该事件发生时会报这个错误Computed property was assigned to but it has no setter 解决方法其实很简单&#xff0c;组件中定义的computed属性缺少setter,使用过co…

前端开发:Vue报错Computed property “show“ was assigned to but it has no setter的解决方法

前言 在前端开发中,使用Vue的时候关于组件使用是非常常见的操作,而且也会遇到各式各样的问题,尤其是刚接触前端开发的开发者。本篇博文分享一下在封装关于Vue的组件的时候,通过计算属性监听父子组件传值提示警告的问题,即:Computed property "show" was assign…

‘xxx‘ is assigned a value but never used.

报这个错误的原因是eslint中的验证语法导致的 解决办法&#xff0c;在报这个错误行后面加上 // eslint-disable-line no-unused-vars即可解决 解决后如下所示&#xff1a;

identity和assigned 的区别

在使用strutshibernate开发过程中&#xff0c;数据的持久化操作时出现了“org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): ”的错误&#xff0c;首先检查了数据库&#xff0c;发现建表时没有把ID设置成…

EditPlus 安装及注册

EditPlus下载链接 密码&#xff1a;ssam 安装过程&#xff1a; 1、解压下载下来的文件 2、解压EditPlus 3.zip 选择解压到EditPlus 3 3、解压密码为 123456 4、打开解压后的文件夹&#xff0c;根据自己的电脑选择文件夹&#xff0c;32位选择“X86”文件夹&#xff0c;64选择“…

EditPlus注册码在线生成

在线网址&#xff1a;EditPlus注册码在线生成工具 ←←←点击链接 此在线生成页面包含Editplus注册码、MyEclipse注册码、Intellij Idea注册码 随意输入用户名&#xff0c;点击生成注册码按钮就生成了注册码&#xff0c;如上图所示。 非常方便~

2020-12-03_EditPlus下载安装注册

EditPlus下载、安装、激活教程 下载 EditPlus下载地址 安装 傻瓜式安装&#xff0c;每次都点下一步就可以。 激活 EditPlus4注册码 注册名&#xff1a;host1991 序列号&#xff1a;14F50-CD5C8-E13DA-51100-BAFE6 注册名&#xff1a;360xw 注册码&#xff1a;93A52-85B8…

RGB图像转换到CIELab空间的研究及优化

第一次写博客&#xff0c;没有太多经验&#xff0c;初入图像处理方向的炒鸡菜鸟&#xff0c;看着大神们都有自己的博客&#xff0c;而且总是学习大神的文章&#xff0c;心里除了满满的敬佩&#xff0c;还有一丝丝的失落&#xff0c;后悔自己当初读本科时没学计算机方向&#xf…

CIC滤波器的matlab仿真与实现

CIC滤波器的matlab仿真与实现 介绍 在数字信号处理中&#xff0c;由于后级硬件如FPGA的处理速度无法跟上前级ADC的采样速度&#xff0c;因此需要对ADC的采样数据进行降速处理&#xff0c;也就是对采样数据进行抽取&#xff0c;简单的抽取描述就是对其中连续几个点取一个点进行…