React-Hooks-Form 集成 Zod 校验库

news/2024/12/23 0:36:25/

React-Hooks-Form 集成 Zod 校验库

首先需要安装 react hooks form 官方提交的解析器

npm install @hookform/resolvers

再安装校验库

npm install zod

它不仅支持 Zod 校验库同时还支持目前各种主流的校验库比如:Yup、Zod、Joi、Ajv、Vest、Custom

具体查看官方文档: https://react-hook-form.com/docs/useform#resolver

我们就拿 Zod 举例:

import { useState } from "react";
import { SubmitHandler, useForm } from "react-hook-form";
import { zodResolver } from "@hookform/resolvers/zod"
import * as z from "zod"// 定义校验参数
const schema = z.object({name: z.string().min(1, { message: "名称不能为空" }),age: z.number().min(1, { message: "年龄不能小于1" }).max(99, { message: "年龄不能超过99" }),
})type Schema = z.infer<typeof schema>export default () => {const [defaultValues, setDefaultValues] = useState<Schema>({ name: "", age: 0 })const { register, handleSubmit, formState: { errors } } = useForm<Schema>({// 默认值defaultValues,// 配置校验解析器resolver: zodResolver(schema),});const onSubmit: SubmitHandler<Schema> = (data, event) => {// 阻止默认提交行为event?.preventDefault();console.log(data)}return (<><form onSubmit={handleSubmit(onSubmit)}><input {...register("name")} type="text" /><span>{errors.name && errors.name.message}</span><input {...register("age")} type="text" /><span>{errors.age && errors.age.message}</span><button type="submit">提交</button></form></>)
}

详细的校验配置信息可查看 Zod 官方文档:https://zod.dev/


http://www.ppmy.cn/news/1526802.html

相关文章

中秋:明月寄相思,灯笼映团圆

文章目录 前言项目概述实现步骤创建基础 HTML 结构添加动态背景和月亮创建 SVG 灯笼实现动态动画效果闪烁的星星效果调整灯笼和月亮尺寸 完整代码结语 前言 今天是中秋&#xff0c;这里先祝大家节日快乐&#xff01;&#x1f386;&#x1f386;&#x1f386; 在这篇博客中&…

数组学习内容

动态初始化 只给长度&#xff0c;数据类型【】 数组名new 数据类型【数组长度】 内存图

检查和测绘室内防撞无人机技术详解

随着无人机技术的飞速发展&#xff0c;其应用领域已从传统的航拍、农业扩展到更为精细化的室内空间测绘、巡检、物流等领域。在室内环境中&#xff0c;无人机面临着空间狭小、障碍物多、GPS信号弱等挑战&#xff0c;因此对防撞技术提出了更高的要求。室内防撞无人机技术的研发&…

Linux——分离部署,分化压力

PQS/TPS 每秒请求数/ 每秒事务数 // 流量衡量参数 可以根据预估QPS 和 服务器的支持的最高QPS 对照计算 就可以得出 需要上架的服务器的最小数量 PV 页面浏览数 UV 独立用户访问量 // 对于网站的总体访问量 response time 响应时间 // 每个请求的响应时间…

3176. 求出最长好子序列 I

3176. 求出最长好子序列 I 题目链接&#xff1a;3176. 求出最长好子序列 I 代码如下&#xff1a; class Solution { public:int maximumLength(vector<int>& nums, int k){unordered_map<int, vector<int>> fd;vector<int> mx(k 2);for (int n…

Java项目: 基于SpringBoot+mybatis+maven校园资料分享平台(含源码+数据库+答辩PPT+毕业论文)

一、项目简介 本项目是一套基于SpringBootmybatismaven校园资料分享平台 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简…

如何建立一个Webservice WSDL的简单例子(完整例子)

一&#xff1a;根据对方给的wsdl 的接口地址创建Web 的逻辑端口 1&#xff1a;例如这个用C#写的Web 2.我们需要在SAP里建立一个Service Consumers 的服务记得后缀要加?wsdl 2&#xff1a;然后就会生成对应方法的出参 入参 返回的消息根据接口方法来判断 二&#xff1a;如何通…

计算机三级 - 数据库技术 - 第十四章 数据仓库与数据挖掘 笔记

第十四章 数据仓库与数据挖掘 内容提要&#xff1a; 了解数据仓库相关技术了解数据仓库的设计、建造、运行及维护了解OLAP及多维数据模型了解数据挖掘技术 决策支持系统(DSS)&#xff1a;综合利用大量数据有机组合众多模型(数学模型和数据处理模型)&#xff0c;通过人机交互&a…