реагируй-драгула работает только на высокой скорости?

#reactjs #drag-and-drop #dragula #react-dragula

Вопрос:

ИЗМЕНИТЬ: Вот изображение моего кода в действии:введите описание изображения здесь

ПРАВКА 2: Мне любопытно, не коробка ли flex нарушает этот код? Предназначена ли dragula для работы с гибкими контейнерами?

У меня есть следующий контейнер:

 #myDisplay{
        display: flex;
        justify-content:left;        
        overflow:none;
        flex-wrap: wrap;
        flex-grow: 0;
        position:absolute;
        top: 2.68518519%;
        left:9.96767241%;
        width: 90.03232759%;
        height:97.31481481%;
 

и я добавляю 3 строки из 7 элементов внутри этого контейнера с помощью react:

 #myCard{
        
        color:var(--txtcolor);        
        flex-shrink: 0;
        width:12.44763614549592%;
        height: 31.29381571%;
        background: var(--contentbg);
        border: 3px solid var(--drkblue);
        box-sizing: border-box;
        border-radius: 53px;
        margin-right: 1.7658573%;
        padding-left: 1%;
        padding-right:1%;
        font-size: 0.875rem;
 

И я использую следующий код драгулы:

   const dragulaDecorator = (componentBackingInstance) => {
    if (componentBackingInstance) {
      let options = { };
      Dragula([componentBackingInstance], options);
    }
  };
 

и объявляю свою витрину такой:

   <div id="myDisplay" ref={dragulaDecorator}>
  {renderCard(1)}
  {renderCard(2)}
  {renderCard(3)}
  {renderCard(4)}
  {renderCard(5)}
  {renderCard(6)}
  {renderCard(7)}    
  {renderCard(8)}  
  {renderCard(9)}
  {renderCard(10)}
  {renderCard(11)}
  {renderCard(12)}
  {renderCard(13)}
  {renderCard(14)} 
  {renderCard(15)}
  {renderCard(16)}
  {renderCard(17)}
  {renderCard(18)}
  {renderCard(19)}
  {renderCard(20)}
  {renderCard(21)}     
 

Этот код работает… в основном. Я могу перетаскивать свои карты, и они будут подталкивать других, как и было задумано. Но это работает только тогда, когда я очень быстро перемещаю свои предметы по экрану. Что позволяет мне никогда не размещать их точно, и это действительно так же хорошо, как не работать. Если я медленно перетаскиваю элемент поверх других, абсолютно ничего не происходит. У кого-нибудь есть опыт работы с этим пакетом, чтобы пролить некоторый свет?

ПРАВКА 3: Я забыл, что у меня есть этот CSS, который я скопировал с веб-сайта. Я не совсем понимаю это, но в этом может быть проблема?

    .gu-mirror {
    position: fixed !important;
    margin: 0 !important;
    z-index: 9999 !important;
    opacity: 0.8;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";
    filter: alpha(opacity=80);
  }
  .gu-hide {
    display: none !important;
  }
  .gu-unselectable {
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
    user-select: none !important;
  }
  .gu-transit {
    opacity: 0.2;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=20)";
    filter: alpha(opacity=20);
  }
 

Комментарии:

1. не могли бы вы привести минимальный воспроизводимый пример? Я пробовал здесь , но это не показывает неправильного поведения

2. @diedu Я добавил некоторые CSS, которые я забыл упомянуть как часть этого. Это может позволить вам воспроизвести мою проблему

3. Я обновил свой codesandbox новым CSS и все еще работаю, не могли бы вы поделиться кодом метода renderCard?