You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Hook Form:如何显示嵌套名称字段的错误信息?

解决React Hook Form嵌套名称字段的错误显示问题

你遇到的问题根源在于:当用register("test.new", { required: true })注册字段时,React Hook Form会把整个"test.new"当作单一的字符串键存在errors对象里,而不是解析成test对象下嵌套的new属性。所以直接用errors.test.new访问会失败——因为errors里根本没有test这个属性,只有键为"test.new"的条目。

下面给你两种可行的解决办法:

方法1:用方括号访问字符串键

直接通过方括号语法获取errors中对应字符串键的错误信息,这是最直接的修正方式:

{errors["test.new"] && <p style={{ color: "yellow" }}>This field is required</p>}

方法2:改用规范的嵌套字段注册(推荐)

如果你希望字段是嵌套对象结构(比如test对象下的new属性),可以换成数组语法注册字段,这样React Hook Form会自动生成嵌套的errors结构:

// 注册时使用数组语法
register("test[new]", { required: true })

// 之后就能用点语法+可选链安全访问错误信息了
{errors?.test?.new && <p style={{ color: "yellow" }}>This field is required</p>}

这里的可选链?.是为了避免errors.test不存在时抛出Cannot read property 'new' of undefined的错误,让代码更健壮。

简单总结:如果只是临时用带点的字段名,方法1足够解决问题;如果是想构建清晰的嵌套数据结构,方法2更符合React Hook Form的设计逻辑,也方便后续对嵌套字段的批量操作。

内容的提问来源于stack exchange,提问作者Santhosh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.01 02:03:13