如何解决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 举报,一经查实,本站将立刻删除。