Вложенное перетаскивание с реактивным перетаскиванием

Я работаю над реакционным проектом, и я хочу перетаскивать задачи в их подзадачи с помощью React Dragula, как nestable .

Код:

      dragulaDecorator = (componentBackingInstance) => {
   if (componentBackingInstance) {
      this.containers.push(componentBackingInstance)
   }
};
componentDidMount() {
   this.isMount = true;
   let tasks = this.props.tasks
   this.setState({ allTasks: tasks})
   this.drake = dragula(this.containers, {
      isContainer: function (el) {
         return el.id === 'single-task';
      },
      moves: function (el, source, handle, sibling) {
         return handle.classList.contains('icon-handle');
      }
   });
}

<ul className="tjs-list list-unstyled single-task" ref={this.dragulaDecorator}>
   {this.state.allTasks && (this.state.allTasks.length > 0) && this.state.allTasks.map((field, key) => {
      return (
         <li key={key}>
            <h4>
               <i className="tjsicon-sort icon-handle"></i>
               {field.name}
            </h4>
         </li>
      )
   })}
</ul>

Я создал простое перетаскивание с помощью вышеупомянутого кода, но мне нужно перетаскивать задачи в подзадачи и их подзадачи и так далее. Так что, пожалуйста, подскажите мне, как я могу достичь того, чего хочу

1 ответ

Перейдите на родную библиотеку https://github.com/bevacqua/dragula

Вы можете использовать класс «вложенный» для вложенных элементов.

      className="nested"

И найдите ".nested" с помощью селектора запросов.

      [].slice.apply(document.querySelectorAll(".nested"))

Это рабочая демонстрация https://codesandbox.io/s/spring-violet-ozlxh

Другие вопросы по тегам