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

react dnd中的项目类型存在问题不变违规:必须定义项目类型

如何解决react dnd中的项目类型存在问题不变违规:必须定义项目类型

当我以自己的方式拖动项目时,我正在尝试定义项目类型。但是,如果我那样做并拖动该项目,就会出问题,这表明在删除该项目后,我看到“不变违规:必须定义项目类型”。这意味着我有一个带有ItemTypes的文件,其中定义了所有内容

export const ItemTypes = {
    'CARD': "card",'PHONE': "phone",'WEAPON': "weapon",'FOOD': "food",'DRINK': "drink"
};

在主库存上,项目数组就是这样

  const [items,setItems] = useState([
    {
      type: "PHONE",label: "test",itemname: "test",pieces: 10,itemweight: 0.2
    },{
      type: "CARD",label: "test5",itemname: "test5",pieces: 5,itemweight: 0.2
    }
  ]);

和项目组件,在其中定义要拖动的项目:

const Item = props => {

    const [{ isDragging },drag] = useDrag({
      item: {
        type: ItemTypes[props.type],index: props.index,label: props.label,itemname: props.name,pieces: props.pieces,weight: props.itemweight
      },collect: (monitor) => ({
        isDragging: !!monitor.isDragging()
      })
    });

所以最后,这意味着当我将项目放置在目标容器上时,我收到错误消息“ Invariant Violation:必须定义项目类型”。

解决方法

最近对 useDrag 进行了更改,请参阅: https://github.com/react-dnd/react-dnd/releases/tag/v14.0.0

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