我有一个要拖放的卡片列表。我希望用户可以通过按下特定位置进行拖放(div)在卡片上(不是整张卡)。我把这个div转移到子组件,并在这个div上添加**{... provided.dragHandleProps}**。一切正常,但我在控制台中出错,找不到拖动句柄。如何解决此问题?
const posts = (
<DragDropContext onDragEnd={this.dragDrop}>
<Droppable droppableId="dragCards">
{(provided) => (
<div ref={provided.innerRef}>
{cards.map((item, index) => {
return (
<Draggable draggableId={item.key} index={index}>
{(provided) => (
<div
ref={provided.innerRef}
{...provided.draggableProps}
>
<Cards
dragChip={
<div {...provided.dragHandleProps}>
{dragChip}
</div>
} />
</div>
)}
</Draggable>
);
})}
{provided.placeholder}
</div>
)}
</Droppable>
</DragDropContext>
);
这是div,我将它传递给子组件。
const dragChip = (
<div >
drag me
</div>
);
2条答案
按热度按时间bvuwiixz1#
看起来您的
<Draggable>
需要一个密钥。之前一月一日
之后一月二日
https://github.com/atlassian/react-beautiful-dnd/issues/1673#issuecomment-571293508
2fjabf4q2#
你可以把div中的props展开到拖拽芯片组件中,如果你想有条件的拖拽,那么你可以使用可拖拽组件的
isDragDisabled
prop