在使用react-dnd的React项目中,我需要一些想法来将箭头拖放到矩形,圆形等几何形状的边缘。另一方面,我应该保存箭头的位置以在同一位置再次显示它。有什么想法吗?
用react-dnd拖放形状的边缘吗?
•
问答
chj950109 回答:用react-dnd拖放形状的边缘吗?
是的,您必须将坐标保存在状态中的某个位置。然后,使用useDrop
钩子(doc)将箭头的新坐标放到新位置时将其推到您的状态。
总而言之,过程如下:
- 在您希望箭头到达的状态下初始化坐标
- 使用
useDrag
使箭头组件可拖动- 向
useDrag
传递begin
回调-修改您的状态-每当箭头开始被拖动时就会调用 - 对
end
回调进行同样的操作 - 然后将其设置为动画,然后将其拖动,然后将其拖动,甚至可以根据在
begin
和end
函数中设置的状态项来更改其外观
- 向
-
使用
使箭头组件可放置useDrop
- 对于
useDrag
,传递一个drop
函数以推动以指出箭头的新坐标。
- 对于
除了不提供任何代码外,为您提供更多帮助还有些困难。如果这样做的原因是您不知道从哪里开始,请看看这个令人惊叹的step-by-step tutorial。
但是,请记住,所有这些都会引发很多重新渲染。就个人而言,对于这个东西之王,我喜欢避免使用第三方库,以保持性能可控,并倾向于尽可能与dom保持紧密联系(使用js事件,而不是例如在拖动时不断更新状态)。