我正试图使用react beautiful dnd对列表进行拖放排序,但我的元素是不可拖动的,我得到了Unable to find draggable with id: X
。我已经用文档中的示例交叉检查了我的代码,但找不到需要修复的内容。我使用常数id
作为key
和draggableId
道具。
代码:CodeSandBox
编辑1:我希望代码能够拖动和重新排列项目,但由于状态更新未实现,将返回到它们的初始位置
刚刚遇到了同样的问题。尝试禁用React的严格模式。这帮我搞定了。https://reactjs.org/docs/strict-mode.html
这里有一个关于react beautiful dnd的公开问题https://github.com/atlassian/react-beautiful-dnd/issues/2350.希望与严格模式的兼容性将很快得到修复。在此之前,删除严格模式可以解决此问题。
这里的聚会迟到了,但我也面临同样的问题。事实证明,react-beautiful-dnd
的一个分支叫做@hello-pangea/dnd
。你可以在这里找到它。
该fork具有相同的API,但与react-beautiful-dnd
不同,它在严格模式下工作,并且似乎是主动维护的。
切换很容易,因为它们使用相同的API。只需添加包装
npm i @hello-pangea/dnd
或yarn add @hello-pangea/dnd
然后从更改您的进口
import {
Droppable,
Draggable
} from "react-beautiful-dnd";
至
import {
Droppable,
Draggable
} from "@hello-pangea/dnd";
注意,@hello-pangea/dnd
是基于typescript的,这意味着这些类型也直接包含在这个包中。
我在nextjs中遇到了同样的问题
我进入next.config.js
文件,只设置了reactStrictMode to false