繁体   English   中英

如何在反应js中移动列表中的项目

[英]How to move an item in a list in react js

`大家好,我需要 React js 的帮助,发生的事情是我想将一个项目从特定列表移动到最后一个位置,但是当我移动它时,它不会加载我之前拥有的数据,不幸的是我'我对 React js 和 ps 很陌生,不是我都知道,所以我转向这个社区寻求帮助,很快我会上传代码,希望你能帮助我,谢谢。

const [categories, setCategories] = useState<CategoriesWithSubsCategories>()

const listSelectCategory = categories?.list.map(cat =\> {
  const { category, id } = cat.category
  return {
    value: id,
    label: category
  }
}).filter(cat =\> cat.label !== 'Otros')
listSelectCategory?.sort((a, b) =\> a.label.localeCompare(b.label)).push({ value: 'Otros', label: 'Otros' })``

正如您在上面所看到的,尝试使用 filter 属性来过滤该类别,然后使用 push 属性将其添加到列表的末尾,它有效但不是它应该如何工作,因为我想放在最后的类别列表中的应该给我带来一些子类别,但它没有,这就是我的问题所在。

尝试使用 setState 变量设置结果。 我在任何地方都看不到这一点。

如果您想从名为categories的变量中访问数据,请在代码底部添加此行,它将使用 setState function 更新变量的值。

setCategories(listSelectCategory)

你可以这样做:

const [categories, setCategories] = useState<CategoriesWithSubsCategories>();

...

// suppose categories is defined
setCategories((prev) => {
    const newList = [...prev.list];
    newList.push(newList.splice(newList.findIndex((item) => item.label === "Otros"),1)[0]);
    return {
        ...prev,
        list: newList
    };
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM