react-hook-form。 useFieldArray Controller 必填,报错自动获取较多疑问记录

背景

动态多个数据Controller包裹时候,原生html标签input可以add时候自动获取焦点,聚焦到最近不符合要求的元素上面

  • matiral的TextField同样可以
  • 可是x-date-pickers/DatePicker不可以❌

是什么原因呢,内部提供foucs??属性才可以,还是?

暂时记录下,问题还未解决

input图:

input代码:

直接用controller的field,add时候就可以给最前面一个没有有效输入的input获取焦点

<input
key={field.id} // important to include key with field's id
{...field}
/>
TextField图:

TestField代码:

必须用register,controller的field无效(没有add自动获取最前面无效输入的表单)

<TextField{...field}label="Username"variant="outlined"{...register(`test.${index}.value`, {required: {value: true,message: "required"}})}/>
x-data-picker

用controller的fields或者regiter都无效

完整代码
import { useForm, Controller, useFieldArray } from "react-hook-form";
import { TextField } from "@mui/material";
import { useEffect } from "react"
import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
import { DatePicker } from '@mui/x-date-pickers/DatePicker';
function Form() {const { register, setFocus, control, handleSubmit, formState: { errors, isDirty }, formState } = useForm();const { fields, append, prepend, remove, swap, move, insert } = useFieldArray({control, // control props comes from useForm (optional: if you are using FormContext)name: "test", // unique name for your Field ArraydefaultValue: {test: [{value: 100}]}});const onSubmit = (data) => {console.log("data", data);};// console.log("errors", errors)useEffect(() => {// const firstError = Object.keys(errors).reduce((field, a) => {//     return !!errors[field] ? field : a;// }, null);// console.log("firstError", firstError)// if (firstError) {//     setFocus(firstError);// }// console.log("errors.test[0]", formState.errors)// if (errors.test && errors.test[0]?.value?.ref) {//     console.log(" errors.test[0].value.ref", errors.test[0].value.ref)//     //errors.test[0].value.ref.focus()//     setFocus(`test.${0}.value`)// }}, [errors, formState]);const appendfile = () => {append({value: ""})}return (<form onSubmit={handleSubmit(onSubmit)}><p>{String(isDirty)}</p>{fields.map((field, index) => (<div key={field.id}>{/* <inputkey={field.id} // important to include key with field's id{...register(`test.${index}.value`, {required: {value: true,message: "required"}})}/> */}{/* <TextFieldkey={field.id} // important to include key with field's id{...register(`test.${index}.value`, {required: {value: true,message: "required"}})}/> */}<Controllername={`test.${index}.value`}control={control}defaultValue=""rules={{required: {value: true,message: "required"}}}errors={isDirty && errors.test && errors.test[index] && errors.test[index].value.message ? true : false}render={({ field }) => {console.log("field", field)//     required: {//         value: true,//         message: "required"//     }// }))return (//一,可以自动获取焦点// <TextField//     {...field}//     label="Username"//     variant="outlined"//     {...register(`test.${index}.value`, {//         required: {//             value: true,//             message: "required"//         }//     })}// />//二,可以自动获取焦点// <input//     key={field.id} // important to include key with field's id//     {...field}// />//三,可以自动获取焦点// < LocalizationProvider dateAdapter={AdapterDayjs} >//     <DatePicker//         {...field}//         {...register(`test.${index}.value`, {//             required: {//                 value: true,//                 message: "required"//             }//         })}//     />// </LocalizationProvider>)}}/></div>))}<div><button onClick={appendfile}>add</button></div><div><input type="submit" /></div></form>);
}export default Form;

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

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

相关文章

数据出境安全评估:重要性和实施策略

数据出境安全评估是确保数据安全和合规的重要环节。随着全球化的加速和信息技术的快速发展&#xff0c;企业和个人需要处理大量的数据&#xff0c;其中许多数据涉及个人隐私和企业机密。因此&#xff0c;数据出境安全评估对于保护数据安全和隐私权至关重要。 一、数据出境安全评…

列式数据库ClickHouse,大宽表聚合、报表一下全搞定

一、前言 现在数据库的种类也是特别的多&#xff0c;大致的类别包括&#xff1a; 关系型数据库&#xff08; MySQL、Oracle、PostgreSQL&#xff09;非关系型数据库&#xff08;Redis、MongoDB、Cassandra、Neo4j&#xff09;全文搜索引擎和分布式文档存储系统&#xff08;El…

kafka入门教程,介绍全面

1、官网下载最新版本的kafka&#xff0c;里面已经集成zookeeper。直接解压到D盘 2、配置文件修改&#xff0c;config目录下面的zookeeper.properties. 设置zookeeper数据目录 dataDirD:/kafka_2.12-3.6.0/tmp/zookeeper 3、修改kafka的配置文件server.properties. 主要修…

了解千兆光模块和万兆光模块的优势与劣势

光模块是现代通信网络中核心的传输设备之一。千兆光模块和万兆光模块作为其中的重要代表&#xff0c;广泛应用于数据中心和云计算等领域。它们采用光纤作为传输介质&#xff0c;具有高速、高带宽等优势。本文将从千兆光模块和万兆光模块的性能和应用范围入手&#xff0c;详述了…

LLM - 训练与推理过程中的 GPU 算力评估

目录 一.引言 二.FLOPs 和 TFLOPs ◆ FLOPs [Floating point Opearation Per Second] ◆ TFLOPs [Tera Floating point Opearation Per Second] 三.训练阶段的 GPU 消耗 ◆ 影响训练的因素 ◆ GPT-3 训练统计 ◆ 自定义训练 GPU 评估 四.推理阶段的 GPU 消耗 ◆ 影响…

[推荐]SpringBoot,邮件发送附件含Excel文件(含源码)。

在阅读本文前&#xff0c;可以先阅读我的上一篇文章&#xff1a; SpringBoot&#xff0c;使用JavaMailSender发送邮件(含源码)。 &#xff0c;本文使用的代码案例涉及到的 jar包、application.properties配置与它相同。 先看一下效果。 图一 图二 在下方代码案例中&#xff0c;…

速卖通卖家如何通过自己搭建测评补单系统,提高产品权重和排名?

速卖通卖家如何给店铺增加权重和排名&#xff1f; 在竞争激烈的速卖通平台上&#xff0c;为自己的店铺增加权重是吸引更多买家和提升销售的关键。店铺的权重决定着在搜索排名、推荐位和广告展示方面的优先级。今天珑哥为您介绍一些有效的策略&#xff0c;帮助您提升速卖通店铺…

Apache Shiro 越权访问漏洞 CVE-2020-1957 漏洞复现

一、漏洞描述 Apache Shiro 是一款开源安全框架&#xff0c;提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用&#xff0c;同时也能提供健壮的安全性。 CVE-2020-1957&#xff0c;Spring Boot中使用 Apache Shiro 进行身份验证、权限控制时&#xff0c;可以精心构造…

五款好用的数据备份软件推荐!

在当今信息时代&#xff0c;数据备份的重要性不言而喻。选择一款可靠的、功能强大的免费备份软件&#xff0c;不仅能确保数据的安全存储&#xff0c;还能为用户节省宝贵的时间和精力。针对这一需求&#xff0c;精心挑选了几款备受推荐的免费数据备份软件&#xff0c;它们不仅操…

污水一体处理设备工艺有哪些

污水一体处理设备工艺主要包括以下几种&#xff1a; AO工艺&#xff1a;AO工艺是增加好氧池缺氧池形成硝化-反硝化系统&#xff0c;处理污水中氮含量效率提升。SBR工艺&#xff1a;SBR工艺是按间歇曝气方式运行的活性污泥处理技术&#xff0c;厌氧、好氧、缺氧处于交替状态&am…

ElasticSearch快速入门实战

全文检索 数据分类&#xff1a; 1、结构化数据&#xff1a; 固定格式&#xff0c;有限长度 比如mysql存的数据 2、非结构化数据&#xff1a;不定长&#xff0c;无固定格式 比如邮件&#xff0c;word文档&#xff0c;日志 3、半结构化数据&#xff1a; 前两者结合 比如xml&am…

第一个QT程序

新建工程&#xff1a; 1. 点击“New Project” 2. 选择“Qt Widgets Application” 3. 工程名和路径 4. 构建系统选择 5. Details 一些细节 6. 选择Kits 7. 完成工程创建 点完成按钮 8. 运行下看 9. 一些示例代码 //main.cpp #include "mywidget.h"#include <Q…

编程助手DevChat:让开发更轻松

#AI编程助手哪家好&#xff1f;DevChat“真”好用 # 目录 前言一、安装Vscode1、下载链接2、安装 二、注册DevChat1、打开注册页2、验证成功完成邮箱绑定3、绑定微信可获得8元 三、安装插件四、配置Access Key1、获取Access Key2、设置Access Key①、点击左下角管理&#xff08…

稳定扩散的高分辨率图像合成

推荐稳定扩散AI自动纹理工具&#xff1a;DreamTexture.js自动纹理化开发包 1、稳定扩散介绍 通过将图像形成过程分解为去噪自动编码器的顺序应用&#xff0c;扩散模型 &#xff08;DM&#xff09; 在图像数据及其他数据上实现了最先进的合成结果。此外&#xff0c;它们的配方…

如何在《阴阳师》游戏中使用Socks5搭建工具

题目&#xff1a;如何在《阴阳师》游戏中使用S5搭建工具S5一键搭建脚本进行游戏战队组建&#xff1f; 引言&#xff1a; 游戏加速和游戏战队组建已经成为《阴阳师》玩家们非常关心的话题。在这篇文章中&#xff0c;我们将向您展示如何在《阴阳师》游戏中使用S5搭建工具S5一键搭…

最新ai系统ChatGPT程序源码+详细搭建教程+以图生图+Dall-E2绘画+支持GPT4+Midjourney绘画

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…

RGB-T Salient Object Detection via Fusing Multi-Level CNN Features

ADFC means ‘adjacent-depth feature combination’&#xff0c;MGF means ‘multi-branch group fusion’&#xff0c;JCSA means ‘joint channel-spatial attention’&#xff0c;JABMP means ‘joint attention guided bi-directional message passing’ 作者未提供代…

uniapp-自定义表格,右边操作栏固定

uniapp-自定义表格&#xff0c;右边操作栏固定 在网上找了一些&#xff0c;没找到特别合适的&#xff0c;收集了一下其他人的思路&#xff0c;基本都是让左边可以滚动&#xff0c;右边定位&#xff0c;自己也尝试写了一下&#xff0c;有点样式上的小bug&#xff0c;还在尝试修…

剑指offer(C++)-JZ5:替换空格(算法-其他)

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 题目描述&#xff1a; 请实现一个函数&#xff0c;将一个字符串s中的每个空格替换成“%20”。 例如&#xff0c;当字符串为We A…

嵌入式应用选择正确的系统设计方法:第三部分

产品质量低下的原因有很多&#xff0c;例如&#xff0c;产品制造粗糙&#xff0c;组件设计不当&#xff0c;架构不佳以及对产品的要求了解不多。点击领取嵌入式物联网学习路线 必须设计质量。 您不能测试出足够的错误来交付高质量的产品。的质量保证&#xff08;QA&#xff09…