reactjs 如何在react js中移动列表中的项目

6ljaweal  于 2022-11-22  发布在  React
关注(0)|答案(3)|浏览(140)

'嗨,伙计们,我需要帮助的Reactjs,发生的是,我想移动一个项目从一个特定的列表到最后一个地方,但当我移动它,它不加载的数据,我以前有,不幸的是,我是非常新的Reactjs和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属性将其添加到列表末尾,它起作用了,但不是它应该如何工作,因为我想放在列表末尾的类别应该会给我带来一些子类别,但它没有。它确实带来了,这就是我的问题所在。

fivyi3re

fivyi3re1#

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

lrl1mhuk

lrl1mhuk2#

如果要访问名为categories的变量中的数据,请在代码底部添加以下行,它将使用setState函数更新变量的值。

setCategories(listSelectCategory)
mf98qq94

mf98qq943#

您可以执行以下操作:

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
    };
});

相关问题