React Antd Form.List 组件嵌套多级动态增减表单 + 表单联动复制实现

Antd Form.List 组件嵌套多级动态增减表单 + 表单联动复制实现

一、业务需求

有一个页面的组件,其中一部分需要用到动态的增减 + 复制表单,然后就想起
了使用 Antd 的 Form.List 去完成这个功能。

这个功能的要求是:

  • 首先是一个动态的表单,可以通过按钮进行增减操作,但是再嵌套了一层,就形成了 Form.List 再套 Form.List 了。
  • 第一个动态表单可以通过外层的按钮去添加同级的表单,嵌套的一层就是在同级的表单里面再套了一 Form.List,独属于这个模块下面的动态表单,然后这个下面的动态表单选择的内容又需要根据表单的选中的值进行联动
  • 第一层表单还可以进行复制,点击复制会生成在生成第一层同样的表单。

综合以上需求,大致的页面样子
在这里插入图片描述

二、实现思路

话不多说,直接上代码:
案例代码

三、问题

问题一:复制的时候由于存在表单联动,直接获取 form 对应字段的值虽然能附上值但是复制出来的下拉框没值 ,因为 useMemo 发生变化
复制时传给子组件的 id 为 先为有效值后不存在,所以缓存的下拉框选项值变为空。
在这里插入图片描述
这会导致在复制到时候出现下面的情况:
在这里插入图片描述
在这里插入图片描述
目前想到是用浏览器本地存储存下每次的 storeId 值,仅在有值的才写进去,每次读取 storeId 时候先判断 props 传过来的是否是空值,是空值就从 storage 里面取

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

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

相关文章

SQL-每日一题【178.分数排名】

题目 表: Scores 编写 SQL 查询对分数进行排序。排名按以下规则计算: 分数应按从高到低排列。 如果两个分数相等,那么两个分数的排名应该相同。 在排名相同的分数后,排名数应该是下一个连续的整数。换句话说,排名之间不应该有空缺的数字。 …

Linux:LAMP搭建(全源码包安装)

LAMP 就是 Linux Apache Mysql PHP/Python 目录 Linux安装 Apache安装 Mysql安装 安装PHP 安装PHP扩展包 编译安装PHP PHP 添加优化模块 测试网页协同工作 Linux安装 虚拟机安装 (1条消息) VMware:安装centos7_鲍海超-GNUBHCkalitarro的博客-CSD…

Mybatis-Plus学习1

mybatis-plus需要两个依赖&#xff0c;一个lombok&#xff0c;一个mybatis-plus <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version> </dependency> …

路由协议基本术语

文章目录 1、自治系统AS2、EGP和IGP3、度量标准和度量值4、管理距离5、路由协议与路由算法6、路由环路问题 1、自治系统AS Internet中&#xff0c;自治系统就是处于同一个管理机构&#xff08;如一个ISP&#xff09;控制下的路由器和网络群组 在同一个自治系统中的所有路由器…

Learn Mongodb DB数据库部署 ②

作者 : SYFStrive 博客首页 : HomePage &#x1f4dc;&#xff1a; PHP MYSQL &#x1f4cc;&#xff1a;个人社区&#xff08;欢迎大佬们加入&#xff09; &#x1f449;&#xff1a;社区链接&#x1f517; &#x1f4cc;&#xff1a;觉得文章不错可以点点关注 &#x1f44…

集合专题----List篇

1、Collection常用方法 package com.example.collection.Collection;import java.util.ArrayList; import java.util.List;public class Collection03 {public static void main(String[] args) {List list new ArrayList();//接口可以指向实现该接口的类//add:添加单个元素l…

快消EDI:联合利华Unilever EDI需求分析

联合利华&#xff08;Unilever&#xff09;是一家跨国消费品公司&#xff0c;总部位于英国和荷兰&#xff0c;在全球范围内经营着众多知名品牌&#xff0c;涵盖了食品、饮料、清洁剂、个人护理产品等多个领域。作为一家跨国公司&#xff0c;联合利华在全球各地都有业务和生产基…

内网安全:内网穿透详解

目录 内网穿透技术 内网穿透原理 实验环境 内网穿透项目 内网穿透&#xff1a;Ngrok 配置服务端 客户端配置 客户端生成后门&#xff0c;等待目标上线 内网穿透&#xff1a;Frp 客户端服务端建立连接 MSF生成后门&#xff0c;等待上线 内网穿透&#xff1a;Nps 服…

系列一、RocketMQ入门

一、MQ概述 1.1、MQ简介 MQ&#xff0c;Message Queue&#xff0c;是一种提供消息队列服务的中间件&#xff0c;也称为消息中间件&#xff0c;是一套提供了消息生产、存储、消费全过程的API软件系统。消息&#xff1a;消息即数据&#xff0c;一般消息的体量不会很大。 1.2、M…

从零开始 Spring Boot 52:@Embedded 和 @Embeddable

从零开始 Spring Boot 52&#xff1a;Embedded 和 Embeddable 图源&#xff1a;简书 (jianshu.com) 这篇文章会介绍Embedded和Embeddable两个注解在 JPA 中的用法。 简单示例 先看一个示例&#xff1a; AllArgsConstructor Builder Data Entity Table(name "user_stu…

【小沐学Unity3d】Unity播放视频(VideoPlayer组件)

文章目录 1、简介2、脚本播放示例3、界面播放示例3.1 2d界面全屏播放3.2 2d界面部分区域播放3.3 3d模型表面播放 结语 1、简介 使用视频播放器组件可将视频文件附加到游戏对象&#xff0c;然后在运行时在游戏对象的纹理上播放。 视频播放器 (Video Player) 组件: 属性功能Sourc…

Mysql锁机制介绍

Mysql锁机制 锁是计算机协调多个进程或线程并发访问某一资源的机制。 在数据库中&#xff0c;除传统的计算资源(如CPU、RAM、I/O等)的争用以外&#xff0c;数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题&#xff0…