我正在使用Reaction Beautiful DND重新订购商品.

这一切都运行得很好,但作为我的onDragEnd的一部分,我使用了以下内容:

function onDragEnd(result) {
    const newItems = [...customgearUpdate];
    const [removed] = newItems.splice(result.source.index, 1);
    newItems.splice(result.destination.index, 0, removed);
    newItems[result.destination.index].catid = result.destination.index;
    setcustomgearUpdate(newItems);
}

这会将数组保存为我使用拖放设置的项的顺序--但如何将此顺序保存回catid字段?

代码newItems[result.destination.index].catid = result.destination.index;将目标索引保存到CATID字段-因此,当它这样做时,它只保存该特定项的索引.

如何将这些项的当前索引保存回数组中的每个项(使用catid字段)?

推荐答案

您可以循环遍历newItems并将catid设置为项目的索引,以将它们按顺序排列:

function onDragEnd(result) {
    const newItems = [...customgearUpdate];
    const [removed] = newItems.splice(result.source.index, 1);
    newItems.splice(result.destination.index, 0, removed);
    newItems.forEach((item, index) => {
      item.catid = index;
    });
    setcustomgearUpdate(newItems);
}

Reactjs相关问答推荐

如何使用React Router创建响应式主详细信息应用程序?

如何等待我的插入内容提交后再继续执行指令?

如何防止使用useCallback和memo重新渲染

404使用GitHub操作部署Next.js应用程序时出错

如何在React中的textarea中显示字符数?

如何用Reaction做交互式的MathML?

有没有办法在Shopify中显示自定义计算的交货日期?

生成Reaction Vite应用程序的停靠容器时无法识别环境变量

使用Next.js和Next-intl重写区域设置

设置自定义形状的纹理

验证 Yup 中的对象项

React对象值下降2次而不是1次

图像路径很奇怪,部署 Next.js 应用程序后我看不到任何图像

React - 添加了输入数据但不显示

Material UI:使用 mui 手风琴时出现props 类型失败:isValidElement 不是函数

响应式媒体 React Tailwind

getAttribute 函数并不总是检索属性值

为什么 state redux-toolkit 是代理?

CORS 政策:无访问控制允许来源-AWS 和 Vercel

调用函数以获取数据并在数据到达时导航到链接