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

react-hook-form调用unregister删除嵌套属性时误删整个父对象

问题原因

这个是react-hook-form的unregister方法的默认内置行为:当你删除嵌套结构的最后一个子字段时,库会默认自动清理上层的空对象/空数组,避免表单值中残留无意义的空结构,所以当你删除groups下唯一的groupId属性后,空的groups对象也会被连带移除。

解决方法

有两种常用方案可以实现保留空groups对象的需求:

  • 方案1:调用unregister时传入配置,关闭空对象自动清理逻辑
form.unregister(`groups.${groupId}`, { keepEmptyObjects: true })

这个配置项会告知react-hook-form不要自动删除上层的空对象,执行后表单值就会保留{ groups: {} }的结构。

  • 方案2:如果你的react-hook-form版本较低不支持上述配置,可以在删除后手动重置groups为初始空对象
form.unregister(`groups.${groupId}`)
// 第二个参数的配置可以避免触发表单脏值、已触摸状态变更和校验逻辑
form.setValue('groups', {}, { shouldDirty: false, shouldTouch: false, shouldValidate: false })

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 13:06:00