微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

spec.type 必须在 react-dnd 中定义

如何解决spec.type 必须在 react-dnd 中定义

我正在尝试使用 React react-dnd 制作 Trello 克隆。 只需输入下面的代码,我就会收到错误

 const [{ isDragging },dragRef] = useDrag({
    item: { type: "CARD" },collect: (monitor) => ({
      isDragging: monitor.isDragging(),}),});

我收到以下错误

spec.type 必须定义

invariant
C:/Users/lucca/Documents/GitHub/2B-task/src/index.ts:28
 25  |   );
  26 | } else {
  27 |   let argIndex = 0;
> 28 |   error = new Error(
     | ^  29 |     format.replace(/%s/g,function() {
  30 |       return args[argIndex++];
  31 |     })

解决方法

此处 Offset 应作为 useDrag 的道具传递。请确保您在 type 中以及在 CARD 中传递相同类型的 useDrop。您可以找到更多参考here

accept
,

在 react-dnd 升级后我遇到了同样的问题。回滚后再次工作。

使用 React-dnd 打开一个问题可能有助于找到根本原因。

编辑:对 14.0 版本进行了更改:https://github.com/react-dnd/react-dnd/releases/tag/v14.0.0

,

在给出的另一个答案中,您需要使类型成为 useDrag 对象的属性。

const [{isDragging},drag] = useDrag({
        type: "CARD",collect: monitor => ({
          isDragging: !!monitor.isDragging()
        })
      })
,

更改版本 “反应”:“^ 16.13.1”, "react-dnd": "^11.1.3","react-dnd-html5-backend": "^11.1.3",

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。