SuperAPI AI 工具集

react-hook-form

编程与开发

查看项目

更新于 10-16 05:47

技能介绍

用途:该技能用于按 React Hook Form 的非受控优先模型构建或重构 React 表单。主要能力:在表单边界附近使用 useForm<FormValues>();为每个可编辑字段设置 defaultValues;原生输入与可转发 ref 的自定义输入使用 register;无法暴露普通 input props 的受控第三方组件使用 Controller;可复用字段组件使用 useController;大型嵌套表单使用 FormProvider 与 useFormContext;可重复行使用 useFieldArray;共享 schema 校验使用 resolver;当加载数据成为干净基线时使用 reset(newValues);仅当某组件需要另一字段值时使用 useWatch。流程:先查看既有表单约定,定义或推断 FormValues,添加带默认值的 useForm<FormValues>(),注册字段,加入校验规则或 resolver,渲染 formState.errors,最后用 handleSubmit(onSubmit) 提交。受控输入方面,Controller 适用于 MUI 字段、React Select、日期选择器、掩码输入或自定义受控组件,需传入 field.value、field.onChange、field.onBlur、field.ref,并用 fieldState 处理字段级错误。schema 校验方面,复杂表单优先使用 Zod 或项目现有 schema 工具,从 schema 推断 FormValues,非字符串值使用 schema 强制转换或 valueAsNumber。限制:不要把 register 与 Controller 同时用于一个字段,不要为每个输入都用本地 useState 镜像;输出应为类型化表单值、各字段默认值、贴近规则或 schema 的字段校验、用户安全的校验消息和清晰提交路径。更多受控输入、嵌套表单、可重复字段、异步默认值、resolver 或类型化可复用字段可参考 references/patterns.md。