@arco.design radioGroup 组件手写 beforeChange 方法

在这里插入图片描述

官方是没有提供 beforeChange 事件的,只能自己写一个

子组件(CustomRadioGroup)

<template><a-radio-group :model-value="modelValue" @change="onRadioChange"><a-radio v-for="item in list" :value="item.value" :key="item">{{ item.label }}</a-radio></a-radio-group>
</template>
<script setup>import { ref } from 'vue'const props = defineProps({modelValue: Number,list: {type: Array,default: () => [],},beforeChange: Function,})const emits = defineEmits(['change', 'update:modelValue'])// radioGroup change事件const cacheValue = ref()const onRadioChange = (value) => {// 父组件调用beforeChange方法if (props.beforeChange) {props.beforeChange().then(() => {// 1 走到 then 这里,直接更新父级数据updateModelValue(value)}).catch(() => {// 2 走到 catch 这里,说明父组件拦截住了,此时不能直接更新父组件数据,// 留待后面父组件直接调用 updateModelValue 方法更新父组件数据,此处缓存住当前结果cacheValue.value = value})} else {updateModelValue(value)}}// 父级组件主动触发const updateModelValue = (value) => {emits('change', value !== undefined ? value : cacheValue.value)emits('update:modelValue', value !== undefined ? value : cacheValue.value)}defineExpose({updateModelValue,})
</script>

父组件

<template><a-form :module="form"><a-form-item label="性别"><CustomRadioGroup v-model="form.sex" :list="sexList" /></a-form-item><a-form-item label="学历"><CustomRadioGroup ref="gradeRef" v-model="form.grade" :list="gradeList" :beforeChange="beforeChange" /></a-form-item></a-form><a-modal title="提示" v-model:visible="confirmVisible" @ok="handleOk"><div>确定要切换吗?</div></a-modal>
</template>
<script setup>import CustomRadioGroup from './CustomRadioGroup.vue'import { ref } from 'vue'// 性别const sexList = [{ label: '男', value: 0 },{ label: '女', value: 1 },]const form = ref({sex: 0,grade: 1,})// 年级const gradeList = [{ label: '小学', value: 0 },{ label: '初中', value: 1 },{ label: '高中', value: 2 },]const confirmVisible = ref(false)const beforeChange = () => {return new Promise((resolve, reject) => {// 开启询问弹窗confirmVisible.value = truereject()})}const gradeRef = ref()const handleOk = () => {gradeRef.value.updateModelValue()}
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/762554.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯-模拟-旋转图片

题目 思路 Python中range() 函数的使用介绍_python指定范围内的整数-CSDN博客 range(start, stop, step)&#xff1a;生成一个序列包含start到stop-1的整数&#xff0c;其中步长为step 代码 n, m map(int, input().split()) a [list(map(int, input().split())) for _ in…

借教室与差分

原题 题目描述 在大学期间&#xff0c;经常需要租借教室。 大到院系举办活动&#xff0c;小到学习小组自习讨论&#xff0c;都需要向学校申请借教室。 教室的大小功能不同&#xff0c;借教室人的身份不同&#xff0c;借教室的手续也不一样。  面对海量租借教室的信息&…

MySQL 锁机制

优质博文&#xff1a;IT-BLOG-CN 定义&#xff1a;锁是计算机协调多个进程或线程并发访问某一资源的机制。 一、表锁&#xff08;偏读&#xff09; MyISAM 引擎&#xff0c;开销小&#xff0c;加锁快&#xff0c;无死锁、锁定粒度大、发生锁冲突的粒度最高&#xff0c;并发度…

【MySQL】对表的相关操作(DDL)

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前学习计网、mysql和算法 ✈️专栏&#xff1a;MySQL学习 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你有帮助的话 欢迎 评论&#x1f4ac…

GPT-5可能会在今年夏天作为对ChatGPT的“实质性改进”而到来

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

pyqt5与selenium混合使用心得

最近想爬一个网站的数据,有用户名密码 但登陆时验证码比较麻烦,是实时变化的一个动态地址 主要给客户使用的 所以无需全自动抓取 def send_request(driver, url, params, method=POST):if method == GET:parm_str = for key, value in params.items():parm_str = parm_st…

MQ组件之RabbitMQ学习

MQ组件之RabbitMQ入门 同步调用和异步调用 在微服务架构中&#xff0c;服务之间的调用有同步调用和异步调用两种方式。 我们使用OpenFeign去调用是同步调用&#xff0c;同步调用的缺点很明显&#xff0c;在下图的场景中&#xff0c;支付完成后需要调用订单服务、仓库服务、短…

【LeetCode-46.全排列】

题目详情&#xff1a; 给定一个不含重复数字的数组 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2&#xff1a; …

字符型数据详解

1 字符常量 C的字符常量是用单撇号括起来的一个字符。如a,x,D,?,$等都是字符常量。注意,a和A是不同的字符常量。 除了以上形式的字符常量外,C还允许用一种特殊形式的字符常量&#xff0c;就是以一个“\”开头的字符序列。例如,前面已经遇到过的&#xff0c;在printf函数中的…

DPDK and Trex环境指南

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、测试拓扑图 二、VirtualBox的网卡配置 三、DPDK支持的网卡 四、DPDK安装 1.DPDK向导 1). 英文向导 2). 中文向导 2.DPDK源码下载 3.DPDK源码解压 4.…

Linux的常用命令-1

ifconfig:看网络 ifconfig -a:看所以包括禁掉的网卡 ifconfig 网卡名 down:关网卡 ifconfig 网卡名 up:开网卡 ps -ef|grep 服务名&#xff1a;显示进程&#xff08;ps -ef|grep sshd&#xff09; kill -9 进程编号&#xff1a;杀进程 clear:清屏 exit:退出shell 切用户 …

今日问题:动态分配内存出错

2024.3.22 在搜素了许多文章和查阅了许多博客后依然没有找到问题所在&#xff0c;最后无意之间翻看以前的关于动态内存管理的代码后发现&#xff1a; 没加头文件&#xff1a;#include<stdlib.h> 苦笑不得了属于是 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio…

蓝桥杯day7刷题日记

P8697 [蓝桥杯 2019 国 C] 最长子序列 思路&#xff1a;直接遍历&#xff0c;和子序列相同就记录&#xff0c;不然就下一位 #include <iostream> #include <string> using namespace std; int res;int main() {string s,t;cin>>s>>t;int i0,j0;while…

关于msvcp140.dll丢失的解决方法详情介绍,修复dll文件的安全注意事项

在使用电脑的过程中&#xff0c;是否有遇到过关于msvcp140.dll丢失的问题&#xff0c;遇到这样的问题你是怎么解决的&#xff0c;都有哪些msvcp140.dll丢失的解决方法是能够完美解决msvcp140.dll丢失问题的&#xff0c;今天小编将带大家去了解msvcp140.dll文件以及分析完美解决…

代码随想录 Day-23

力扣题目 406.根据身高重建队列 思路 这里可以看出来是有两个维度考虑&#xff0c;和力扣题目 135.分发糖果&#xff08;可以看我day-22的文章&#xff09; 有点类似。 因此遇到这种两个维度权衡的时候&#xff0c;一定是先考虑一个维度再按照另一个维度来重新考虑排序。 两…

innodb 的 buffer pool 管理 page

page 页结构 page是整个InnoDB存储的最基本构件&#xff0c;也是InnoDB磁盘管理的最小单位&#xff0c;与数据库相关的所有内容都存储在这种Page结构里。 Page分为几种类型&#xff0c;常见的页类型有 数据页(Btree Node)Undo页(Undo Log Page)系统页(System Page)事务数据页 …

PC显示字体和浏览器的字体不一致

1&#xff1a;设置了PC的区域&#xff0c;显示字符&#xff0c; 2&#xff1a;导致浏览器显示的字符一半大一半小 3&#xff1a;为什么去设置这个&#xff0c;因为担心封号 4&#xff1a;不让它检测出我是他大佬

重要的数据模型之一Brand

重要的数据模型之一Brand 1. 创建class类2. 属性 2.1 属性name2.2 其他属性2.3 代码2.4 绘制牌2.5 添加属性2.6 重写绘制函数2.7 错误2.8 简单测试一下 3. 定义一个线程4. 修改5. 本次结束代码 重要的数据模型之一Brand 学习于bilibili 春娇与志明 1. 创建class类 在model包…

【C++初阶】第七站:string类的初识(万字详解、细节拉满)

前言&#xff1a; &#x1f4cd;本文知识点&#xff1a;string的初识 &#x1f4a8;个人博客:Dream_Chaser&#xff5e;-CSDN博客 &#x1f6a9;本专栏&#xff1a;C 目录 一、什么是STL 二、STL的六大组件 三、STL的缺陷 四、为什么学习string类&#xff1f; 五、标准库中…

云ERP vs 本地ERP:优劣对比与选择指南

在性能方面&#xff0c;本地ERP需要需要较高级别的计算机系统和其他设备来确保其高效运行。如果企业的计算机设备不够先进&#xff0c;那么选择本地ERP可能导致系统性能下降。而云ERP解决方案则能保证性能&#xff0c;只要企业拥有稳定的互联网连接即可。 在成本方面&#xff0…