推荐项目:React Native 动态拖放新星 - `react-native-dnd`
warning:
这篇文章距离上次修改已过186天,其中的内容可能已经有所变动。
以下是一个简单的React Native应用程序,使用react-native-dnd
包来实现一个简单的拖放集合的界面。
import React, { useState } from 'react';
import { StyleSheet, View, Text } from 'react-native';
import DraggableBox from 'react-native-dnd-box';
export default function App() {
const [boxes, setBoxes] = useState([
{ id: 1, text: 'Box 1' },
{ id: 2, text: 'Box 2' },
{ id: 3, text: 'Box 3' },
]);
const onDragEnd = (result) => {
if (!result.destination) return;
const items = Array.from(boxes);
const [reorderedItem] = items.splice(result.source.index, 1);
items.splice(result.destination.index, 0, reorderedItem);
setBoxes(items);
};
return (
<View style={styles.container}>
{boxes.map((box, index) => (
<DraggableBox
key={box.id}
id={box.id.toString()}
index={index}
text={box.text}
onDragEnd={onDragEnd}
/>
))}
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
},
});
这段代码创建了一个简单的拖放界面,用户可以拖动列表中的项目重新排列。DraggableBox
组件是一个假设的组件,它应该由react-native-dnd
提供,并且能够处理拖放逻辑。这个例子演示了如何使用useState
管理状态,以及如何在拖放操作结束时更新列表顺序。
评论已关闭