当前位置: 首页 > news >正文

Antd React Form使用Radio嵌套多个Select和Input的处理

使用Antd React Form使用Radio会遇到嵌套多个Select和Input的处理,需要多层嵌套和处理默认事件和冒泡,具体实现过程直接上代码。

实现效果布局如下图

代码

<Formname="basic"form={form}labelWrap{...formItemLayoutSpan(5, 19)}onFinish={onFinish}autoComplete="off"><Row gutter={gutterValue}><Col span={24}><Form.Item name="isConfirm" noStyle><Radio.Group><Space direction="vertical"><Radio value={1}><Space wrap>已定级备案,第<span onClick={eventPrevent}><Form.ItemnoStyleshouldUpdate={(prevValues, currentValues) =>(prevValues as any)?.isConfirm !==(currentValues as any)?.isConfirm}>{({ getFieldValue }) => (<FormItemSelectclassName="level-select"noStyle={true}options={confidentialLevelNumberDict as optionsDict[]}disabled={getFieldValue("isConfirm") === 2}name={"1111"}/>)}</Form.Item></span>级(一至四),S<span onClick={eventPrevent}><Form.ItemnoStyleshouldUpdate={(prevValues, currentValues) =>(prevValues as any)?.isKey !==(currentValues as any)?.isKey}>{({ getFieldValue }) => (<FormItemSelectclassName="level-select"noStyle={true}options={confidentialLevelNumberDict as optionsDict[]}disabled={getFieldValue("isConfirm") === 2}name={"112222"}/>)}</Form.Item></span>A<span onClick={eventPrevent}><Form.ItemnoStyleshouldUpdate={(prevValues, currentValues) =>(prevValues as any)?.isKey !==(currentValues as any)?.isKey}>{({ getFieldValue }) => (<FormItemSelectclassName="level-select"noStyle={true}options={confidentialLevelNumberDict as optionsDict[]}disabled={getFieldValue("isConfirm") === 2}name={"11223333"}/>)}</Form.Item></span>G<span onClick={eventPrevent}><Form.ItemnoStyleshouldUpdate={(prevValues, currentValues) =>(prevValues as any)?.isKey !==(currentValues as any)?.isKey}>{({ getFieldValue }) => (<FormItemSelectclassName="level-select"noStyle={true}options={confidentialLevelNumberDict as optionsDict[]}disabled={getFieldValue("isConfirm") === 2}name={"11255555"}/>)}</Form.Item></span></Space><div className="mt-4"><span onClick={eventPrevent}><Space>备案证明编号:<Form.ItemnoStyleshouldUpdate={(prevValues, currentValues) =>(prevValues as any)?.isConfirm !==(currentValues as any)?.isConfirm}>{({ getFieldValue }) => (<FormItemInputnoStyle={true}disabled={getFieldValue("isConfirm") === 1}name={"33666"}/>)}</Form.Item></Space></span></div></Radio><Radio value={2}><Space wrap>未定级,本次密评依据GB/T 39786—2021《信息安全技术信息系统密码应用基本要求》第<spanonClick={(e) => {e.stopPropagation();e.preventDefault();}}><Form.ItemnoStyleshouldUpdate={(prevValues, currentValues) =>(prevValues as any)?.isConfirm !==(currentValues as any)?.isConfirm}>{({ getFieldValue }) => (<FormItemSelectnoStyle={true}className="level-select"options={confidentialLevelNumberDict as optionsDict[]}disabled={getFieldValue("isConfirm") === 1}name={"77777"}/>)}</Form.Item></span>级(一至四)信息系统要求</Space></Radio></Space></Radio.Group></Form.Item></Col></Row>
</Form>
const eventPrevent = (event: any) => {event.preventDefault();event.stopPropagation();
};export { eventPrevent };.level-select {width: 84px !important;
}
http://www.lryc.cn/news/525778.html

相关文章:

  • Vue - toRefs() 和 toRef() 的使用
  • Python3 OS模块中的文件/目录方法说明九
  • OpenCV文字绘制支持中文显示
  • opengrok_windows_多工程环境搭建
  • 基于ollama,langchain,springboot从零搭建知识库三【解析文档并存储到向量数据库】
  • Elasticsearch 和arkime 安装
  • git回退
  • pytest+playwright落地实战大纲
  • 01-硬件入门学习/嵌入式教程-CH340C使用教程
  • 小试牛刀调整Prompt,优化Token消耗
  • snippets router pinia axios mock
  • Visual Studio2019调试DLL
  • 深入解析:Docker 容器如何实现文件系统与资源的多维隔离?
  • vue项目中打包后的地址加载不出图片【五种解决方案】
  • 讯飞星火大模型将超越chatgpt?
  • 3D Vision--计算点到平面的距离
  • 《开源与合作:驱动鸿蒙Next系统中人工智能技术创新发展的双引擎》
  • Java 高级工程师面试高频题:JVM+Redis+ 并发 + 算法 + 框架
  • 【机器学习】嘿马机器学习(科学计算库)第11篇:Pandas,学习目标【附代码文档】
  • WordPress Fancy Product Designer插件Sql注入漏洞复现(CVE-2024-51818)(附脚本)
  • StarRocks强大的实时数据分析
  • Linux(Centos 7.6)命令详解:iconv
  • SpringBoot读取配置优先级顺序是什么?
  • VScode连接远程Linux服务器环境配置
  • 梯度下降法 (Gradient Descent) 算法详解及案例分析
  • docker 部署 java 项目详解
  • npm install 报错:Command failed: git checkout 2.2.0-c
  • Vue基础(2)
  • (长期更新)《零基础入门 ArcGIS(ArcScene) 》实验七----城市三维建模与分析(超超超详细!!!)
  • war包 | Docker部署flowable-ui