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

如何在useFieldArray中实现嵌套数组的拖拽功能?

react-beautiful-dnd + react-hook-form 嵌套FieldArray拖拽排序仅最后一项异常

我正在使用react-beautiful-dnd和react-hook-form实现嵌套输入数组的拖拽功能:通过useFieldArray钩子管理表单,useController钩子实现受控输入。目前遇到的问题是,尝试重新排序子输入框时,仅最后一项会发生变化。

代码示例

代码沙箱地址:https://codesandbox.io/s/watch-usewatch-calc-forked-t5ltk2?file=/src/nestedFieldArray.js

复现步骤

  • 添加至少2个顶级输入框
  • 为每个顶级输入框添加2个嵌套输入框
  • 尝试重新排序第一个顶级项的嵌套输入框

异常现象

第二个顶级项的子输入框位置改变,而最初拖拽的输入框会恢复原位置:
拖拽异常演示

已尝试的解决方式

给嵌套输入框传递ref,使用useImperativeHandle钩子暴露useFieldArray的move方法来重新排序,但每次仅最后一个子项会被重新排序。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 11:25:19