反应漂亮的dnd-使可拖动对象跳过组件

时间:2019-12-02 10:41:46

标签: javascript reactjs web jsx react-beautiful-dnd

我一直在使用react dnd并在选项卡内生成可拖动项目的列表: enter image description here

您在中间看到的广告组件不可拖动(请参见下面的代码)。 当我拖动并切换带有广告组件旁边的项目的地方时,会发生什么情况,这些项目与它重叠: enter image description here

如何使项目仅与自己切换位置并“跳过”广告组件?在下面添加代码 谢谢!

data.items.map((item, index) => !item.delete &&
          (
            <React.Fragment>
              { ad && ad.displayIndex === index &&
                <div
                  className={classNames({
                    [styles.itemListAdContainer]      : !isAdRemoved,
                    [mobileStyles.itemListAdContainer]: !isAdRemoved,
                    })}
                >
                  { !isAdRemoved &&
                    <ItemListAd
                      data={ad.data}
                      onClose={() => this.setState({ isAdRemoved: true })}
                    /> }
                </div>
              }

              <Draggable
                key={item.id}
                draggableId={item.id}
                index={index}
              >
                {(provided, snapshot) => (
                  <div
                    ref={provided.innerRef}
                    {...provided.draggableProps}
                    {...provided.dragHandleProps}
                  >
                    <Item
                      showDivider={ad.displayIndex !== index + 1 || isAdRemoved}
                      data={item}
                      key={item.id}
                      onChange={data => onItemChange(item, data)}
                    />
                  </div>
                )}
              </Draggable>
            </React.Fragment>
        ))

这是一个地图函数,用于渲染category \ tab组件(大容器)中的项目。整个category \ tab组件都是可放置的

0 个答案:

没有答案