需求:表单中需要在item后面添加文字备注,如果不使用FormItem嵌套FormItem时,编辑操作的时候会出现回填不成功的问题。

当不使用formItem嵌套的时候:这时候点击编辑的时候,数据获取到了但是没有在页面中回填,原因是<FormItem></FormItem>中的根元素只能是一个表单控件标签,不能是<>或者是<div>等。

const formData = [{id: 'name',label: '广告名称',rules: [{ required: true, message:'请输入' }],children: <><Input allowClear placeholder='请输入' /><span>表单项的备注说明--广告名称</span></>,},{id: 'position',label: '广告位置',rules: [{ required: true, message:'请选择' }],children: <><Selectplaceholder='请选择'onChange={(value) => {setPosition(value);form.setFieldsValue({position: value,});}}>{positionOption}</Select><span>表单项的备注说明--广告位置</span></>,},
]
<Row gutter={{ xs: 8, sm: 16, md: 24, lg: 32 }}>{formData.map((item, index) => {const key = `${index}_formDataItem`;return (<Col key={key} xs={24} sm={24} md={12} lg={8} xl={6}><FormItem label={item.label} name={item.id}>{item.children}</FormItem></Col>);})}
</Row>

这时候就该使用<FormItem></FormItem>嵌套解决问题,代码如下:

const formData = [{id: 'name',label: '广告名称',rules: [{ required: true, message: '请输入' }],remark: <span>备注说明--广告名称</span>,children: <Input allowClear placeholder='请输入' />,},{id: 'position',label: '广告位置',rules: [{ required: true, message: '请选择' }],remark: <span>备注说明--广告位置</span>,children: (<Selectplaceholder='请选择'onChange={(value) => {setPosition(value);form.setFieldsValue({position: value,});}}>{positionOption}</Select>),},
]
<Form form={form} labelCol={{ span: 2 }} wrapperCol={{ span: 16 }}>{formData.map(({ id, label, rules, hidden, children, remark }) => {return (<FormItemkey={id}label={label}hidden={hidden}required={id !== 'remarks' && true} // 手动添加required 属性><div className="flex items-center"><Col span={id === 'image' ? 4 : 18} className="mr-4"><FormItem name={id} rules={rules} noStyle>{children}</FormItem></Col><span>{remark}</span></div></FormItem>);})}</Form>

这时候就解决了编辑时回填的问题。

这时候又会出现另一个问题就是:“必填项的红色*在页面中没有出现,也就是<FormItem rules={rules}>绑定rules后红色*必填提示没有生效”,这时解决这个问题的办法就是在<FromItem>标签中手动添加 required属性。

antd FormItem嵌套FormItem的适用场景相关推荐

  1. flex form formitem

    form.formite 遍历 [color=blue]mxml:[/color] <mx:Form id="myform"> <mx:FormItem labe ...

  2. 怎么才能让Antd中的嵌套子表格渲染不一样的内容

    目录 一.子表格与父表格的数据存储在一起 方式一:Function(record, index, indent, expanded):VNode 方式二:#expandedRowRender=&quo ...

  3. Vue笔记(五)—— Vue render渲染/组件嵌套之iView官网案例改写Table表格组件及Modal弹窗/对话框/模态框组件内容自定义详解

    缺乏耐心的读者请主要关注标红部分! 因部分内容自动转为代码格式,所以代码部分请主要关注注释部分! 1.Table表格组件内容自定义: 官网Table表格组件部分示例代码: columns12: [{t ...

  4. vue-router之嵌套路由

    ❤记在前面 "自己"这个东西是看不见的,撞上一些别的什么,反弹回来,才会了解自己. 跟很强的东西.可怕的东西.水准很高的东西相碰撞,才知道"自己"是什么,这才是 ...

  5. vue嵌套路由,二级路由使用介绍

    vue-router 嵌套路由,二级子路由 项目中如果都是一级路由,路由管理会有些乱.嵌套路由是路由中包含路由的意思,组件中可以有自己的路由导航和路由容器(router-link.router-vie ...

  6. Antd源码浅析(二)InputNumber组件 一

    前言 上篇我们讲了Icon组件,Icon组件是Antd源码库中实现比较简单的组件,适合大家入门,这篇文章主要和大家一起分析一下数字输入框组件,即InputNumber,难度适中,但蕴含的Antd里较为 ...

  7. WRF系列教程3:嵌套方式总结

    WRF使用基本上会涉及到嵌套,主要原因是:WRF使用的是等经纬网格,不具备局地加密的能力,全场都使用高分辨率网格则会耗费大量的计算资源,无法满足时效性的要求. 使用嵌套的加密方式能够实现在关键区域采取 ...

  8. Python中的If嵌套讲解(语法、实例、执行流程)

    If就是if条件语句,嵌套的意思可以理解为在生活当中有种玩具叫做俄罗斯套娃,这个套娃呢就是大的套娃里面有小的娃,小娃里面有更小的娃,就这样一层一层的套下去.在编程语言当中,if嵌套指代的意思是一个大的 ...

  9. java多层if else嵌套语句的优化思路,滑动验证码防刷功能开发

    阿里巴巴java开发手册里面,在控制语句部分有一个推荐,如下: [推荐]表达异常的分支时,少用 if-else 方式,这种方式可以改写成: if (condition) { ...return obj ...

  10. C语言 结构体 联合体 | 嵌套使用

    一.简单的实例分析 题目:获取0x12345678各个字节. 答案: //方法一: #include <stdio.h>typedef unsigned int uint32_t; typ ...

最新文章

  1. Spring AOP Capability and Goal
  2. Flutter Dart 安装在window系统
  3. leetcode 225. 用队列实现栈(维护两个队列用于倒替元素,使用和1进行按位与,实现队列切换)
  4. windows 安装 zabbix agent 客户端
  5. mysql的with rollup
  6. 111... 南邮NOJ 1079
  7. 表情识别项目综述论文阅读总结
  8. matlab h系统控制器,Matlab的H_inf鲁棒控制器的设计.pdf
  9. 腾达f3虚拟服务器,腾达(Tenda)F3路由器用手机怎么设置?
  10. NBA运动员球员数据分析
  11. 2010中国互联网十大搞笑段子,笑后请深思
  12. 基于可编程图形处理器的骨骼动画算法及其比较
  13. 学习C语言的相关网站(C学习资料)
  14. 海雀口中美食遭贪吃海鸥打劫
  15. java 月亮升起,描写月亮升起的句子
  16. 使用TextCNN+Word2Vec实现简历文本分类(一)
  17. 无线串口NRF24L01的使用与调试
  18. iPhone14 刚发布就降价,全网疯抢!!!
  19. Unity3D安卓导出包加密学习--加密Assembly-CSharp.dll
  20. win10安装autocad 2013出现command line option syntax error

热门文章

  1. Facebook自动化测试札记
  2. 软件工程---团队作业4
  3. 无刷有感电机测速、速度闭环控制
  4. Flixel横板游戏制作教程(二)— AddingPlayer
  5. Matlab基于主分量的人脸重建显示
  6. openbravo erp介绍(一)
  7. centOS7安装redis单例配置主从+哨兵+VIP
  8. IPhone 日历提醒
  9. python实现输出日历_python实现输出日历
  10. e书制作工具和反编译工具