惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
IT之家
IT之家
博客园 - Franky
Stack Overflow Blog
Stack Overflow Blog
宝玉的分享
宝玉的分享
Recent Announcements
Recent Announcements
Engineering at Meta
Engineering at Meta
S
SegmentFault 最新的问题
V
Visual Studio Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Last Week in AI
Last Week in AI
H
Help Net Security
V
V2EX
H
Hackread – Cybersecurity News, Data Breaches, AI and More
量子位
博客园 - 叶小钗
J
Java Code Geeks
博客园 - 【当耐特】
月光博客
月光博客
爱范儿
爱范儿
人人都是产品经理
人人都是产品经理
酷 壳 – CoolShell
酷 壳 – CoolShell
小众软件
小众软件

博客园 - IT之家

antd前端页面实现浏览器中PDF文件预览(不使用第三方插件 ) swagger文档生成html静态文档 根据Word模板导出word文档,包含文本标签替换为图片,生成列表数据,以及标签替换等功能 asp.net core中webapi接口的动作与参数 .NETCore文件上传将文件保存到docker容器以外的文件夹 liunx服务器通过ssh实现异地备份 mysql常见错误 liunx下自动备份文件夹 mysql在liunx下面的自动备份 关于.net6.0中swagger偶尔无法加载接口的问题笔记 VUE对象数组,和普通数组的常用方法 关于VUE项目请示接口报错:Error: Network Error at createError (createError.js:17) at XMLHttpRequest.handleError的问题处理 解决.net6 Docker容器 DateTime.Now 获取时间相差8小时问题(转载) CronExpression使用笔记 vue项目发布到docker nginx的方法总结 VUE项目开发报错:Error in render: "TypeError: Cannot read property 'country' of undefined" vs2022升级后打开项目报错预定义类型system.void未定义或导入” 关于.net6项目发布到docker(nginx)踩到的一些坑 关于.netcore6图片处理(生成缩略图、验证码、加水印)发布到docker(liunx)踩到的坑
关于antd前端组件a-select组件选择无效的问题处理记录
IT之家 · 2026-01-30 · via 博客园 - IT之家

在使用公司的信息系统时,偶然发现一个下拉组件选择无效,于是看一下前端页面的代码。

前端页面是基于ant Design vue组件开发,JS代码如下,主要用于获取当前登录用户所属的组织机构列表和默认的组织机构

//获取用户信息
const userInfo = tool.data.get('USER_INFO')
//获取用户归属的组织机构列表(有多个)
const orgs = userInfo.orgs    
//获取默认的组织机构
let myOrgId = userInfo.orgs && userInfo.orgs.length ? userInfo.orgs[0].orgId : 0

下面是下拉选择的控件代码,用于选择当前登录帐号关联的部门列表

<a-form-item v-if="orgs && orgs.length"
                        label="指定部门"
                        name="myOrgId"
                    >
                        <a-select v-model:value="myOrgId" :field-names="{ label: 'orgName', value: 'orgId' }" :options="orgs" placeholder="请选择指定部门"/>
                    </a-form-item>

当前登录帐号有2个部门可以选择,但是选择后,选中的部门没有变化,还是原来的值。

看上面的代码,没有看出哪里有问题,于是就很奇怪,用change事件记录了一下选择是否有变化,发现change事件传的value是有变化的,但是变量myOrgId是没有变化的。以前也遇到过这个问题,但是原因是绑定值的变量类型与选项列表的值的变量类型不一致的问题。

这次看了一下代码,我发现,这里定义变量没有使用ref()不是引用类型的,于是将定义变量代码改为以下代码

let myOrgId = ref(userInfo.orgs && userInfo.orgs.length ? userInfo.orgs[0].orgId : 0)

变量定义的代码改了之后,发现问题解决了。后面使用myOrgId变量时,需要使用myOrgId.value获取值。

总结一下,选择无效的原因可能有两个

1、绑定值的变量类型与选项列表的值的变量类型不一致。

2、值类型变量定义时没有使用ref()来定义。

问题解决了,在此记录一下。