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

React-hook-form-mui(一):基本使用

前言

在项目开发中,我们选择了React+MUI作为技术栈。在使用MUI构建form表单时,我们发现并没有与antd类似的表单验证功能,于是我们选择了MUI推荐使用的react-hook-form-mui库去进行验证。但是发现网上关于这个库的使用方法和demo比较少且比较简单,并没有复杂的表单验证的demo。
因此本文及以下几篇文章,会从简到难讲解如何使用。希望通过这几篇文章的介绍,能够帮助你入门react-hook-form-mui

优势介绍

react-hook-form-mui可以帮助开发人员更轻松地构建表单,它结合了React Hook FormMaterial-UI组件库。它提供了一些预定义的表单组件,如TextFieldElementCheckboxElement、等,可以直接使用。此外,它还提供了一些自定义的表单组件,如PasswordElementDatePickerElement等,可以根据需要进行定制。
使用react-hook-form-mui,开发人员可以更快速地构建表单,并且可以轻松地进行表单验证和数据处理。

简单Demo

下面是一个以React MUI react-hook-form-mui简单用例

import React from 'react';
import { useForm } from 'react-hook-form';
import { Button } from '@mui/material';
import { FormContainer, TextFieldElement } from 'react-hook-form-mui';// 定义表单数据类型
export interface UserSettings{firstName: string;lastName: string;
}const MyForm = () => {// 使用 useForm 声明一个 formContextconst formContext = useForm<UserSettings>({// 初始化表单数据defaultValues: {firstName: '',lastName: ''}});// 表单提交时的回调函数const onSubmit = (data) => {console.log(data);};return (// 使用 FormContainer 包裹表单组件<FormContainerformContext={formContext}// 表单提交成功时的回调函数onSuccess={(data) => {onSubmit (data);}}>{/* 使用 TextFieldElement 渲染表单组件 */}<TextFieldElement name="firstName" label="First Name" /><TextFieldElement name="lastName" label="Last Name" /><Button type="submit">Submit</Button></FormContainer>);
};export default MyForm;

首先,我们通过useForm来声明一个formContext, 在formContext可以声明defaultValues来初始化form表单的值。

其次, 在formContainer中,声明onSuccess方法,当点击type=‘submit’,按钮时,会回调用其中的方法。onSuccess方法中的data参数,会返回和defaultValues中一样的数据类型。

总结

以上是关于React-hook-form-mu的最基础的用法。希望本文会对你有所帮助,如果有什么问题,可在下方留言沟通。

相关文章:

React-hook-form-mui(一):基本使用

前言 在项目开发中&#xff0c;我们选择了ReactMUI作为技术栈。在使用MUI构建form表单时&#xff0c;我们发现并没有与antd类似的表单验证功能&#xff0c;于是我们选择了MUI推荐使用的react-hook-form-mui库去进行验证。但是发现网上关于这个库的使用方法和demo比较少且比较简…...

python总结-生成器与迭代器

生成器与迭代器 生成器生成器定义为什么要有生成器创建生成器的方式一(生成器表达式) 创建生成器的方式二(生成器函数)生成器函数的工作原理总结 迭代器概念可迭代对象和迭代器区别for循环的本质创建一个迭代器 动态添加属性和方法运行过程中给对象、类添加属性和方法types.Met…...

MySQL如何从数据中截取所需要的字符串

MySQL如何从数据中截取所需要的字符串 背景 有这样的一个场景,我想从我的表里面进行数据截取&#xff0c;我的数据内容大致如下&#xff1a; 张三-建外SOHO-2-16 POA 20210518.pdf 我想获取数据中的&#xff1a;20210518这一日期部分&#xff0c;需要如何实现&#xff1f; 解…...

动态加载和动态链接的区别

动态加载&#xff08;Dynamic Loading&#xff09;和动态链接&#xff08;Dynamic Linking&#xff09;是两个与程序运行时加载和使用代码相关的概念&#xff0c;它们有一些区别&#xff1a; 动态加载&#xff08;Dynamic Loading&#xff09;&#xff1a; 定义&#xff1a; 动…...

js数组循环,当前循环完成后执行下次循环

前言 上图中&#xff0c;点击播放icon&#xff0c;图中左边地球视角会按照视角列表依次执行。u3D提供了api,但是我们如何保证在循环中依次执行。即第一次执行完成后&#xff0c;再走第二次循环。很多人的第一思路就是promise。对&#xff0c;不错&#xff0c;出发的思路是正确的…...

决策树(Decision Trees)

决策树&#xff08;Decision Trees&#xff09;是一种基于树形结构进行决策的模型&#xff0c;广泛应用于分类和回归任务。它通过对数据集进行递归划分&#xff0c;构建一棵树&#xff0c;每个节点代表一个特征&#xff0c;每个分支代表一个决策规则&#xff0c;叶节点存储一个…...

湖南大学-计算机网路-2023期末考试【部分原题回忆】

前言 计算机网络第一门考&#xff0c;而且没考好&#xff0c;回忆起来的原题不多。 这门学科学的最认真&#xff0c;复习的最久&#xff0c;考的最差。 教材使用这本书&#xff1a; 简答题&#xff08;6*530分&#xff09; MTU和MSS分别是什么&#xff0c;联系是什么&#x…...

LCD—液晶显示

本节主要介绍以下内容 显示器简介 液晶控制原理 秉火3.2寸液晶屏简介 使用FSMC模拟8080时序 NOR FLASH时序结构体 FSMC初始化结构体 一、显示器简介 显示器属于计算机的I/O设备&#xff0c;即输入输出设备。它是一种将特定电子信息输出到屏幕上再反射到人眼的显示工具。…...

论正确初始化深度学习模型参数的重要性

遇到的问题&#xff1a;在一般的深度学习训练过程中&#xff0c;我们建立好模型以后&#xff0c;程序就有自动的初始化一些模型的参数&#xff0c;比如全连接层中每一个节点的权重等等&#xff0c;在之前的网络训练过程中&#xff0c;我总是事先设下随机种子以后&#xff0c;让…...

ALSA学习(5)——ASoC架构中的Machine

参考博客&#xff1a;https://blog.csdn.net/DroidPhone/article/details/7231605 &#xff08;以下内容皆为原博客转载&#xff09; 文章目录 一、注册Platform Device二、注册Platform Driver三、初始化入口soc_probe() 一、注册Platform Device ASoC把声卡注册为Platform …...

LeetCode 0447.回旋镖的数量:哈希表

【LetMeFly】447.回旋镖的数量&#xff1a;哈希表 力扣题目链接&#xff1a;https://leetcode.cn/problems/number-of-boomerangs/ 给定平面上 n 对 互不相同 的点 points &#xff0c;其中 points[i] [xi, yi] 。回旋镖 是由点 (i, j, k) 表示的元组 &#xff0c;其中 i 和…...

容器相关笔记

目录 1.容器 1.什么是容器 2.java中的容器 3.容器里存放的是引用数据类型&#xff08;存对象的地址&#xff0c;不是对象本身&#xff09;&#xff0c;不能存基本数据类型 4.容器存放的两种格式 5.容器类所在的包 6.容器的分类 1.Collection&#xff0c;存放单一的类型 1.List&…...

cissp 第10章 : 物理安全要求

10.1 站点与设施设计的安全原则 物理控制是安全防护的第一条防线&#xff0c;而人员是最后一道防线。 10.1.1 安全设施计划 安全设施计划描述了组织的安全要求的轮廓&#xff0c; 并且着重强调为了提供安全性所用的方法和机制。 这样的计划通过被称为关键路径分析的过程进行开…...

聊一聊 .NET高级调试 内核模式堆泄露

一&#xff1a;背景 1. 讲故事 前几天有位朋友找到我&#xff0c;说他的机器内存在不断的上涨&#xff0c;但在任务管理器中查不出是哪个进程吃的内存&#xff0c;特别奇怪&#xff0c;截图如下&#xff1a; 在我的分析旅程中都是用户态模式的内存泄漏&#xff0c;像上图中的…...

海外代理IP在游戏中有什么作用?

随着科技的飞速发展&#xff0c;手机和电脑等电子产品已成为互联网连接万物的重要工具&#xff0c;深度融入我们的日常生活&#xff0c;我们借助互联网完成工作、休闲和购物等任务&#xff0c;以求提升生活质量。 不仅如此&#xff0c;网络游戏也是人们心中最爱&#xff0c;它…...

高防ip适合防御网站和游戏类的攻击吗?

​  作为站长&#xff0c;要学会并承受得住网站外来攻击的压力&#xff0c;尤其是所属为 DDoS 攻击高发行业的网站类业务及游戏行业&#xff0c;是很容易被竞争对手或者一些伪黑客爱好者盯上的。 加上&#xff0c;有些站长并没有提前了解&#xff0c;就盲目进军了这两个行业&…...

HTML5和JS实现明媚月色效果

HTML5和JS实现明媚月色效果 先给出效果图&#xff1a; 源码如下&#xff1a; <!DOCTYPE html> <html> <head><title>明媚月光效果</title><style>body {margin: 0;overflow: hidden;background-color: #000; /* 添加一个深色背景以便看到…...

Django5+DRF序列化

概述 本教程将介绍如何创建一个简单的粘贴板代码高亮 Web API。在此过程中&#xff0c;它将介绍构成 REST 框架的各种组件&#xff0c;让你全面了解所有组件是如何组合在一起的。 本教程相当深入&#xff0c;因此在开始学习之前&#xff0c;你可能需要先吃一块饼干&#xff0…...

什么是编译程序和解释程序

一、编译程序 1、编译器接收源代码作为输入&#xff0c;它会一次性地将整个源代码程序转换成目标代码&#xff08;通常是机器语言或汇编语言&#xff09;&#xff0c;这个过程包括词法分析、语法分析、语义分析、优化以及最终的目标代码生成。2、编译后的目标代码是一个独立的…...

文档审阅批注的合并和对比

#创作灵感# 最近在改论文&#xff0c;Feedback返回的时候&#xff0c;把之前的批注都删了&#xff0c;这就增加了工作量&#xff0c;看起来不方便&#xff0c;所以就需要将删掉的批注全部复原。 那在原来的文档重新在修改一遍&#xff0c;工作量还是很大的&#xff0c;所以这里…...

广义零样本学习综述的笔记

1 Title A Review of Generalized Zero-Shot Learning Methods&#xff08;Farhad Pourpanah; Moloud Abdar; Yuxuan Luo; Xinlei Zhou; Ran Wang; Chee Peng Lim&#xff09;【IEEE Transactions on Pattern Analysis and Machine Intelligence 2022】 2 conclusion Generali…...

java每日一题——输出9x9乘法表(答案及编程思路)

前言&#xff1a; 打好基础&#xff0c;daydayup! 题目&#xff1a;输出下图9x9乘法表 编程思路&#xff1a;java只能输出行&#xff0c;不能输出列&#xff0c;所以考虑好每一行输出的内容即可 public class demo {public static void main(String[] args) {for (int i 1; i…...

Android 车联网——基础简介(一)

传统的车载功能单一,无太多娱乐性,而随着智能化时代的发展,车载系统也被赋予了在系统中预装 Android 应用的能力,基于Android平台的车载信息娱乐系统 —— Android AutoMotive 应运而生。 一、AutoMotive简介 Android Automotive OS 车载操作系统,是一个基本 Android 平台…...

自动驾驶货车编队行驶系统功能规范

货车编队行驶功能规范 Truck Platooning Functional Specification 目录 1 概述... 7 1.1 目的... 7 1.2 范围... 7 1.3 术语及缩写... 7 1.4 参考法规标准... 8 2 功能规范... 9 2.1 功能描述... 9 2.1.1 功能用途…...

javafx

JavaFX JavaFX简介 JavaFX是一个用于创建富客户端应用程序的图形用户界面&#xff08;GUI&#xff09;框架。它是Java平台的一部分&#xff0c;从Java 8开始成为Java的标准库。 JavaFX提供了丰富的图形和多媒体功能&#xff0c;使开发人员能够创建具有吸引力和交互性的应用程…...

玩转贝启科技BQ3588C开源鸿蒙系统开发板 —— 编译构建及此过程中的踩坑填坑(3)

接前一篇文章&#xff1a;玩转贝启科技BQ3588C开源鸿蒙系统开发板 —— 编译构建及此过程中的踩坑填坑&#xff08;2&#xff09; 上一篇文章结束时在等待提示的各依赖包下载安装后的编译结果&#xff0c;但是很遗憾&#xff0c;编译并没有最终完成&#xff0c;既未成功也没有失…...

SQL ORDER BY 关键字

ORDER BY 关键字用于对结果集进行排序。 SQL ORDER BY 关键字 ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。 ORDER BY 关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序&#xff0c;您可以使用 DESC 关键字。 SQL ORDER BY 语法 SELECT …...

多线程-生产者消费者模型

一、基本信息 1、场景介绍&#xff1a;厨师和吃货的例子&#xff0c;吃货吃桌子上的面条&#xff0c;吃完让厨师做&#xff0c;厨师做完面条放桌子上&#xff0c;让吃货吃&#xff0c;厨师如果发现桌子上有面条&#xff0c;就不做&#xff0c;吃货发现桌子上没有面条就不吃。 …...

解压命令之一 gzip

文章目录 解压命令之一 gzip更多信息 解压命令之一 gzip gzip用于对后缀为gz文件进行解压&#xff1a; $ gzip -d data.gz这个命令将解压examplefile.gz&#xff0c;并且在当前目录下生成一个名为data的解压后的文件。 但特别需要留意的是&#xff0c;这个操作会删除源文件&…...

力扣:438. 找到字符串中所有字母异位词 题解

Problem: 438. 找到字符串中所有字母异位词 438. 找到字符串中所有字母异位词 预备知识解题思路复杂度Code其它细节推荐博客或题目博客题目滑动窗口哈希表 预备知识 此题用到了双指针算法中的滑动窗口思想&#xff0c;以及哈希表的运用。c中是unordered_map。如果对此不了解的u…...

wordpress oilost v1.0/网络营销总结

一个不成熟的程序员。编程工作干了三年&#xff0c;全部都是在维护上。我们有5个软件人员。维护的代码量不少于100万行。但我们是不成熟的程序员&#xff0c;因此&#xff0c;这些代码的质量也是不成熟的。维护的难度和强度是非常大的。所作就是不停的修补。让不清晰的代码&…...

公司做网站需准备资料/百度seo还有前景吗

笔者根据近一段时间所学的数据库知识编写了这篇关于SQL Server如何在项目中实现备份与还原的文章&#xff0c;与大家相互探讨、学习。 --备份的设备有2种(临时设备和永久设备) 注意&#xff1a;默认下的备份类型是完整备份 --第一种&#xff1a; backup database Company t…...

想建网站做优化/百度域名查询

题目传送门&#xff1a;CF809E。 题意简述&#xff1a; 有一棵 \(n\) 个点的树&#xff0c;第 \(i\) 个节点有一个值 \(a_i\)&#xff0c;保证 \(a_i\) 是一个从 \(1\) 到 \(n\) 的排列。 请求出在树中均匀随机选择两个点 \(u,v\)&#xff08;\(u\ne v\)&#xff09;时 \(\varp…...

江油网站建设/营销推广

源地址 大家都知道一个游戏里面会有大量的图片&#xff0c;每个图片渲染是需要时间的&#xff0c;下面分析两个类来加快渲染速度&#xff0c;加快游戏运行速度 一、SpriteBatchNode 1、先说下渲染批次&#xff1a;这是游戏引擎中一个比较重要的优化指标&#xff0c;指的是一…...

顺德企业手机网站建设/新闻发稿

###算法 一. 算法的基本概念&#xff1a; 对特定问题的求解步骤&#xff0c;指令的有序序列 二. 算法的五个特征&#xff1a; one.输入–算法有0个或者多个输出 two.输出–算法至少有一个输出 three.可行性–可以执行 four.确定性–算法的每一条指令都有确切的定义&#xff0c;…...

成都集团网站建设/优化设计答案六年级上册

使用PHPMySqlAjaxjQuery实现省市区三级联动功能要求&#xff1a;写一个省市区(或者年月日)的三级联动&#xff0c;实现地区或时间的下拉选择。实现技术&#xff1a;php ajax实现&#xff1a;省级下拉变化时市下拉区下拉跟着变化&#xff0c;市级下拉变化时区下拉跟着变化。使用…...