js用form.item拖拽排序react
时间: 2023-12-16 09:06:33 浏览: 220
您可以使用 `react-sortablejs` 库来实现拖拽排序,具体步骤如下:
1. 首先安装 `react-sortablejs` 库:
```
npm install react-sortablejs
```
2. 在您的组件中导入 `SortableContainer` 和 `SortableElement` 组件:
```
import { SortableContainer, SortableElement } from 'react-sortable-hoc';
```
3. 创建一个 React 组件,并将其包装在 `SortableContainer` 组件中:
```
const SortableList = SortableContainer(({items}) => {
return (
<ul>
{items.map((value, index) => (
<SortableItem key={`item-${index}`} index={index} value={value} />
))}
</ul>
);
});
```
4. 创建一个包装您的排序项目的组件,并将其包装在 `SortableElement` 组件中:
```
const SortableItem = SortableElement(({value}) => {
return (
<li>
{value}
</li>
);
});
```
5. 最后,在您的组件中使用 `SortableList` 组件,并将数据传递给它:
```
class MySortableList extends React.Component {
state = {
items: ['Item 1', 'Item 2', 'Item 3', 'Item 4', 'Item 5'],
};
onSortEnd = ({oldIndex, newIndex}) => {
this.setState(({items}) => ({
items: arrayMove(items, oldIndex, newIndex),
}));
};
render() {
return <SortableList items={this.state.items} onSortEnd={this.onSortEnd} />;
}
}
```
6. 最后,您需要使用 `arrayMove` 函数来移动数组中的元素。此函数可以从 `react-sortablejs` 中导入:
```
import {arrayMove} from 'react-sortablejs';
```
这样,您就可以使用 `form.item` 在 React 中实现拖拽排序了。
阅读全文