我用的是react-beautiful-dnd
<DragDropContext>
<Droppable>
{(provided, snapshot) => (
<div>
<Draggable><Item with Slider></Draggable>
<Draggable><Item with Slider></Draggable>
<Draggable><Item with Slider></Draggable>
<Draggable><Item with Slider></Draggable>
etc
</div>
)}
</Droppable>
</DragDropContext> 我的理解是,Draggable将有一些不同的事件侦听器,以允许它检测何时单击/单击和拖动/等等。
我使用的Slider组件也将具有类似的事件(因为我假设它提供了与Draggable类似的事件侦听器)。
我怎样才能做到:
react-beautiful-dnd忽略从某些目标发出的事件或
react-beautiful-dnd就不会接收到事件?下面的屏幕截图显示了两个滑块- (1)一个反应组件(material-ui)和(2)一个<input type="range" />组件。正常范围工作良好(不会触发拖放),而滑翔机则不会。
发布于 2021-01-04 10:18:22
参见:代码沙箱
要做到这一点,关键是只对添加扩展{...provided.dragHandleProps}到内部div,并确保{...provided.dragHandleProps}是容器父级上的而不是,后者通常是<Draggable>的直接子级。
<Droppable droppableId="featureWidgets">
{(provided: any) => (
<div {...provided.droppableProps} ref={provided.innerRef}>
<FeaturesListView>
{featureWidgets.map(({id, type}, index) => {
return (<Draggable key={id} draggableId={id} index={index}>
{(provided) => (
<div
ref={provided.innerRef} {...provided.draggableProps} ///* NO NO not here {...provided.dragHandleProps} */
<div {...provided.dragHandleProps}>drag grip handle</div>
<WidgetRow>
<Slider/>
</WidgetRow>
</div>
)}
</Draggable>);
})}
{provided.placeholder}
</FeaturesListView>
</div>
)}
</Droppable> https://stackoverflow.com/questions/60228898
复制相似问题