在React Beautiful dnd中渲染一个组件

时间:2019-06-03 16:28:35

标签: reactjs drag-and-drop react-beautiful-dnd

您好,我正在尝试学习react-beautiful-dnd,

我遵循所有官方教程并试图阅读文档,但并不清楚。

但是,如果我要呈现复杂的数据集怎么办?

只是为了更好地理解我的问题:

我在react中有一个复杂的组件:

<ChangeRequest title="Superframe" requestId="1124" cost="600" supervisor="Jhon Wayne" buttonTitle="valutazione" />

此组件具有复杂的设计,而且道具中的数据将是动态的。有一种方法可以在react-beatiful-dnd?中重用此组件。还是我必须按照react-beautiful-dnd逻辑重写所有内容?

如果我不能重新使用它,我可以在哪里开始重写内容?

在本教程中为initialData,我们使用了此对象:

const initialData = {
  tasks: {
    'task-1': { id: 'task-1', content: 'ciao' },
    'task-2': { id: 'task-2', content: 'contenuto numero 2' },
    'task-3': { id: 'task-3', content: 'contenuto numero 3' },
    'task-4': { id: 'task-4', content: 'contenuto numero 4' },
    'task-5': { id: 'task-5', content: 'contenuto numero 5' },
    'task-6': { id: 'task-6', content: 'contenuto numero 6' },

  },
  columns: {
    'column-1': {
      id: 'column-1',
      title: 'Content Table',
      taskIds: ['task-1', 'task-2', 'task-3', 'task-4', 'task-5', 'task-6'],
    },
    'column-2': {
      id: 'column-2',
      title: 'In Progress',
      taskIds: [],
    },
    'column-3': {
      id: 'column-3',
      title: 'Done',
      taskIds: [],
    },
  },
  columnOrder: ['column-1', 'column-2', 'column-3'],
};

export default initialData;

在下面的图像中,您将看到inredData的内容如何重新设置。

enter image description here

这是主要组件的html

  render() {
    return (
      <DragDropContext onDragEnd={this.onDragEnd}>
        <div className="columnDnDFlex">
        {this.state.columnOrder.map( columnId => {
          const column = this.state.columns[columnId];
          const tasks = column.taskIds.map(taskId => this.state.tasks[taskId])

          return <Column className="columnDnDFlexItem" key={column.id} column={column} tasks={tasks} />
        })}
        </div>
      </DragDropContext>
    );
  }
}

0 个答案:

没有答案