React-hook-form-mui(五):包含内嵌表单元素的表单
前言
在上一篇文章中,我们介绍了react-hook-form-mui如何与与后端数据联调。在实际项目中,从后端获取的数据可能是复杂的数据对象,本文将介绍,如何通过react-hook-form-mui实现一个包含内嵌表单元素的表单
Demo
以下代码实现了一个包含内嵌表单元素的表单的完整代码:
import React from 'react';
import { useForm } from 'react-hook-form';
import { Button, MenuItem } from '@mui/material';
import { FormContainer, TextFieldElement } from 'react-hook-form-mui';//内嵌表单元素
const InnerForm = ({ index }: any) => {return (<><TextFieldElement name={`items[${index}].name`} label="Name" /><TextFieldElementname={`items[${index}].quantity`}label="Quantity"type="number"/></>);
};const MyForm = () => {const formContext = useForm({defaultValues: {firstName: '',lastName: '',email: '',gender: '',age: '',items: [{ name: '', quantity: '' }]}});const { watch } = formContext;const onSubmit = (data) => {console.log(data);};return (<FormContainerformContext={formContext}onSuccess={(data) => {onSubmit(data);}}><TextFieldElement name="firstName" label="First Name" /><TextFieldElement name="lastName" label="Last Name" /><TextFieldElement name="email" label="Email" /><TextFieldElement select name="gender" label="Gender"><MenuItem value="male">Male</MenuItem><MenuItem value="female">Female</MenuItem></TextFieldElement><TextFieldElement name="age" label="Age" type="number" />{watch('items')?.map((_, index) =><InnerForm key={index} index={index} />)}//像数组中插入表新的元素<Buttontype="button"onClick={() => watch('items').push({ name: '', quantity: '' })}>Add Item</Button><Button type="submit">Submit</Button></FormContainer>);
};export default MyForm;
解析
//内嵌表单元素
const InnerForm = ({ index }: any) => {return (<><TextFieldElement name={`items[${index}].name`} label="Name" /><TextFieldElementname={`items[${index}].quantity`}label="Quantity"type="number"/></>);
};
以上代码是实现内嵌表单元素的关键代码,了解以上代码,我们需要了解react-hook-form-mui的核心理念。它是通过获取表单元素的name,生成数据结构数。因此,对于内嵌的组件而言,我们需要通过index来给name赋值。这样就可以获取到内嵌表单元素的表单值。
总结
以上是关于React-hook-form-mui的内嵌表单元素的讲解。希望本文会对你有所帮助。如果有什么问题,可在下方留言沟通。
相关文章:
React-hook-form-mui(五):包含内嵌表单元素的表单
前言 在上一篇文章中,我们介绍了react-hook-form-mui如何与与后端数据联调。在实际项目中,从后端获取的数据可能是复杂的数据对象,本文将介绍,如何通过react-hook-form-mui实现一个包含内嵌表单元素的表单 Demo 以下代码实现了…...
【内网安全】搭建网络拓扑,CS内网横向移动实验
文章目录 搭建网络拓扑 ☁环境CS搭建,木马生成上传一句话,获取WebShellCS上线reGeorg搭建代理,访问内网域控IIS提权信息收集横向移动 实验拓扑结构如下: 搭建网络拓扑 ☁ 环境 **攻击者win10地址:**192.168.8.3 dmz win7地址&…...
1、输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。
1、输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。 int main(){char str[N];int letter 0,space 0,digit 0, others 0;printf("请输入一行字符:");gets(str);for(int i0;str[i]!\0;i){if((a<str[i] && …...
戴尔科技推出全新96核Precision 7875塔式工作站
工作站行业一直是快节奏且充满惊喜的。在过去25年中,戴尔Precision一直处于行业前沿,帮助创作者、工程师、建筑师、研究人员等将想法变为现实,并对整个世界产生影响。工作站所发挥的作用至关重要,被视为化不可能为可能的必要工具。如今,人工智能(AI)和生成式AI(GenAI)的浪潮正在…...
论文阅读——DINOv
首先是关于给了提示然后做分割的一些方法的总结: 左边一列是prompt类型,右边一列是使用各个类型的prompt的模型。这些模型有分为两大类:Generic和Refer,通用分割和参考分割。Generic seg 是分割和提示语义概念一样的所有的物体&am…...
JOSEF电流继电器 DL-33 整定范围0.5-2A 柜内安装板前接线
系列型号: DL-31电流继电器; DL-32电流继电器; DL-33电流继电器; DL-34电流继电器; 一、用途 DL-30系列电流继电器用于电机保护、变压器保护和输电线的过负荷和短路保护线路中,作为起动元件。 二、结构和原理 继电器系电磁式,瞬时动作…...
RCE绕过
1.[SCTF 2021]rceme 总结下获取disabled_funciton的方式 1.phpinfo() 2.var_dump(ini_get(“disable_functions”)); 3.var_dump(get_cfg_var(“disable_functions”)); 其他的 var_dump(get_cfg_var(“open_basedir”)); var_dump(ini_get_all()); <?php if(isset($_POS…...
Qt应用开发--国产工业开发板全志T113-i的部署教程
Qt在工业上的使用场景包括工业自动化、嵌入式系统、汽车行业、航空航天、医疗设备、制造业和物联网应用。Qt被用来开发工业设备的用户界面、控制系统、嵌入式应用和其他工业应用,因其跨平台性和丰富的功能而备受青睐。 Qt能够为工业领域带来什么好处: -…...
css 常用动画效果
css 常用动画效果 文章目录 css 常用动画效果1.上下运动动画2.宽度变化动画 1.上下运动动画 <div class"box"><div class"item"></div> </div>css .box {position: relative; }.item {position: absolute;width: 50px;height: 50…...
【读书笔记】微习惯
周日晚上尝试速读一本书《微习惯》,共七章看了下目录结构并不复杂,计划每章7-8分钟读完, 从20:15-21:00。读的时候,订下闹钟,催促着自己的进度。边读边记了一些要点和微信读书里面的划线。 第六章实践内容最为丰富&…...
Oracle SQL优化
1、书写顺序和执行顺序 在Oracle SQL中,查询的书写顺序和执行顺序是不同的。 1.1SQL书写顺序如下: SELECTFROMWHEREGROUP BYHAVINGORDER BY 1.2 SQL执行顺序 FROM:数据源被确定,表连接操作也在此步骤完成。 WHERE:对…...
C++实现ATM取款机
C实现ATM取款机 代码:https://mbd.pub/o/bread/ZZeZk5Zp 1.任务描述 要求:设计一个程序,当输入给定的卡号和密码(初始卡号和密码为123456) 时,系统 能登录 ATM 取款机系统,用户可以按照以下规则进行: 查询…...
【数电笔记】11-最小项(逻辑函数的表示方法及其转换)
目录 说明: 逻辑函数的建立 1. 分析逻辑问题,建立逻辑函数的真值表 2. 根据真值表写出逻辑式 3. 画逻辑图 逻辑函数的表示 1. 逻辑表达式的常见表示形式与转换 2. 逻辑函数的标准表达式 (1)最小项的定义 (2&am…...
Gradio库的安装和使用教程
目录 一、Gradio库的安装 二、Gradio的使用 1、导入Gradio库 2、创建Gradio接口 3、添加接口到Gradio应用 4、处理用户输入和模型输出 5、关闭Gradio应用界面 三、Gradio的高级用法 1、多语言支持 2、自定义输入和输出格式 3、模型版本控制 4、集成第三方库和API …...
【BLE基础知识】--Slave latency设置流程及空中包解析
1、Slave latency基本概念 当BLE从设备对耗电量要求较高时,若需要节省耗电量,则可以通过设置Slave Latency参数来减少BLE从设备的耗电。 Slave Latency:允许Slave(从设备)在没有数据要发的情况下,跳过一定…...
数据结构之堆排序以及Top-k问题详细解析
个人主页:点我进入主页 专栏分类:C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶 C语言刷题 数据结构初阶 欢迎大家点赞,评论,收藏。 一起努力 目录 1.前言 2.堆排序 2.1降序排序 2.2时间复杂…...
ESP32-Web-Server 实战编程-通过网页控制设备多个 GPIO
ESP32-Web-Server 实战编程-通过网页控制设备多个 GPIO 概述 上节 ESP32-Web-Server 实战编程-通过网页控制设备的 GPIO 讲述了如何通过网页控制一个 GPIO。本节实现在网页上控制多个 GPIO。 示例解析 前端设计 前端代码建立了四个 GPIO,如下死 GPIO 2 在前端的…...
说一说MySQL中的锁机制
说一说MySQL中的锁机制 按粒度大小从大到小分为 全局锁 全局锁 全局锁是对整个数据库的锁,最常用的全局锁就是读写锁 读锁 阻止其他用户更新数据,允许其他用户读数据写锁 阻止其他用户更新和读数据 修改一些大量的数据,并且不希望其他用户…...
C++笔试训练day_1
文章目录 选择题编程题 选择题 编程题 #include <iostream> #include <algorithm> #include <vector>using namespace std;int main() {int n 0;cin >> n;vector<int> v;v.resize(3 * n);int x 0;for(int i 0; i < v.size(); i){cin >&…...
详解Spring对Mybatis等持久化框架的整合
😉😉 学习交流群: ✅✅1:这是孙哥suns给大家的福利! ✨✨2:我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 🥭🥭3:QQ群:583783…...
工作10年才明白,这些被忽略的编程基础,才是升职加薪的关键
文章目录前言一、代码规范:不是“处女座洁癖”,是AI时代的“保命符”二、函数式编程:你以为“写SpringBoot用不上”,其实AI Agent全靠它三、命令行与系统模块:别让“IDE一键运行”,毁了你的生产效率四、经典…...
非洲车商采购中国二手车的完整流程:从找车到提车七步走
操作目标:帮助非洲车商、进口商、批发商及其采购代理,系统性地完成中国二手车采购。适用对象:想了解采购中国二手车完整流程的海外B端买家。采购流程SOP第一步:找车源渠道说明适用场景广州出口基地南沙、番禺、白云实地考察线上平…...
3个核心功能解密:PT-Plugin-Plus如何实现PT站点种子下载效率提升
3个核心功能解密:PT-Plugin-Plus如何实现PT站点种子下载效率提升 【免费下载链接】PT-Plugin-Plus PT 助手 Plus,为 Microsoft Edge、Google Chrome、Firefox 浏览器插件(Web Extensions),主要用于辅助下载 PT 站的种子…...
BridgesLLM Portal:统一AI模型调用的门户框架设计与实践
1. 项目概述:一个面向AI应用开发的“门户”框架最近在AI应用开发领域,一个名为“BridgesLLM-ai/portal”的项目引起了我的注意。乍一看这个名字,可能会觉得有些抽象——“portal”是门户的意思,而“BridgesLLM”似乎暗示着它与大语…...
如何使用Android Sunflower构建可预测UI:掌握单向数据流的终极指南
如何使用Android Sunflower构建可预测UI:掌握单向数据流的终极指南 【免费下载链接】sunflower A gardening app illustrating Android development best practices with migrating a View-based app to Jetpack Compose. 项目地址: https://gitcode.com/gh_mirro…...
2026年搜索引擎大变革:生成式优化解决方案引领新潮流
引言随着ChatGPT、Google AI概览等工具成为主流搜索界面,传统的SEO策略已难以适配新时代的挑战。生成式引擎优化(GEO)应运而生,成为企业在线上生存与优化的新选择。本文将探讨2026年SEO行业格局的变化,分析GEO的核心逻…...
从零构建趣味AI应用:技术架构、核心实现与部署实战
1. 项目概述与核心价值最近在GitHub上看到一个挺有意思的项目,叫miaoquai,作者是jingchang0623。光看这个名字,可能有点摸不着头脑,但点进去一看,发现这是一个关于“喵趣AI”的开源项目。作为一个在AI应用和开源社区混…...
pdf2pptx:三分钟实现LaTeX幻灯片到PowerPoint的无缝转换
pdf2pptx:三分钟实现LaTeX幻灯片到PowerPoint的无缝转换 【免费下载链接】pdf2pptx Convert your (Beamer) PDF slides to (Powerpoint) PPTX 项目地址: https://gitcode.com/gh_mirrors/pd/pdf2pptx 还在为学术演示的格式兼容问题烦恼吗?你是否需…...
Elasticsearch 查询日志:每个查询一行协调器级别日志,适用于 ES|QL、DSL、SQL 和 EQL
作者:来自 Elastic Najwa Harif 及 Valentin Crettaz 通过 Elasticsearch 查询日志,可以轻松理解查询对集群性能的影响。每个请求由一条协调器级别日志记录,覆盖 ES|QL、DSL、SQL 和 EQL,并提供完整的查询文本、追踪信息、可选用户…...
Harness层数据清洗自动化
Harness层数据清洗自动化:解放数据团队生产力的核心方案 开篇引子 上周我帮一家年GMV超20亿的电商客户排查数据故障,他们的数仓团队反馈连续3天的用户订单报表交易额比实际支付金额少了1200万,排查了3个小时才定位到根因:新接入的外卖业务系统的订单状态字段新增了枚举值6…...
