@Liz 2025-03-20 11:03 采纳率: 12.5%
浏览 5

DraggableFlatList 操作完成后总是先返回原位置再重新渲染到最终位置

引入'react-native-draggable-flatlist'使用DraggableFlatList,进行拖拽操作,操作完成后总是先返回原位置再重新渲染到最终位置,求经验解决!

  • 写回答

4条回答 默认 最新

  • 道友老李 JWE233286一种基于机器视觉的水表指针读数识别及修正的方法 专利发明者 2025-03-20 11:03
    关注
    让【道友老李】来帮你解答,本回答参考gpt编写,并整理提供,如果还有疑问可以点击头像关注私信或评论。
    如果答案让您满意,请采纳、关注,非常感谢!
    在`react-native-draggable-flatlist`中,可以通过设置`onDragEnd`函数来处理拖拽结束后的操作。在这个回调函数中,可以通过调整数据源的顺序来实现拖拽完成后总是返回原位置再重新渲染到最终位置的效果。 以下是一个简单的示例代码:
    import React, { useState, useEffect } from 'react';
    import { View, Text, FlatList } from 'react-native';
    import DraggableFlatList from 'react-native-draggable-flatlist';
    const data = [
      { key: '1', text: 'Item 1' },
      { key: '2', text: 'Item 2' },
      { key: '3', text: 'Item 3' },
      { key: '4', text: 'Item 4' }
    ];
    const App = () => {
      const [items, setItems] = useState(data);
      const onDragEnd = ({ data }) => {
        setItems(data);
      };
      const renderItem = ({ item, index, drag }) => {
        return (
          <View onLongPress={drag}>
            <Text>{item.text}</Text>
          </View>
        );
      };
      return (
        <DraggableFlatList
          data={items}
          renderItem={renderItem}
          keyExtractor={item => item.key}
          onDragEnd={onDragEnd}
        />
      );
    };
    export default App;
    

    在这个例子中,我们使用useState来管理数据源items,并在onDragEnd函数中更新items,确保拖拽完成后总是返回原位置再重新渲染到最终位置。同时,通过onLongPress触发拖拽操作。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月20日