以下是一个简单的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管理状态,以及如何在拖放操作结束时更新列表顺序。