我想通过编写两个包含可以在它们之间拖动的子元素的 div 框来学习 React Beautiful Dnd。所有(大多数?)在线教程都是带有循环和状态的 Trello 克隆,这使我对基础知识的理解变得混乱。我想通过仅对所需的最小状态进行硬编码来简化我的理解,最终结果是两个组件(组件名称为“Column”),每个组件都包含一个 div(一个名为“Task”的组件),我可以将其拖到其他。
眼下。我收到错误“TypeError:children is not a function”。
这是我的代码:
src/App.js
import {DragDropContext} from 'react-beautiful-dnd';
import Column from './Components/Column';
function App() {
return (
<DragDropContext onDropEnd={result => console.log("my life is worth more than this")}>
<Column id="1"/>
</DragDropContext>
);
}
export default App;
src/组件/列
import React from 'react';
import {Droppable} from 'react-beautiful-dnd';
import Task from "../../Components/Task"
function Column(props){
const { classes, id } = props;
let style = {
backgroundColor:"orange",
height:"100px",
width:"100px",
margin:"100px"
}
return (
<Droppable droppable = {id}>
{provided => (
<div {...provided.droppableProps} ref={provided.innerRef} style={style}>
Column is orange task is red
<Task id="1"/>
<Task id="2"/>
{provided.placeholder}
</div>
)
}
</Droppable>
)
}
export default Column
src/组件/任务
import React from 'react';
import {Draggable} from 'react-beautiful-dnd';
function Task(props){
const { classes, id } = props;
return (
<Draggable draggableId ={id}>
<div>
some task
</div>
</Draggable>
)
}
export default Task