首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >保存已删除行的状态

保存已删除行的状态
EN

Stack Overflow用户
提问于 2020-05-16 20:02:33
回答 1查看 743关注 0票数 0

这是我的问题。

我正在使用react窗口来呈现大表。每一行都有自己的本地状态。删除一行后,下一行将向上移动并获取已删除行(这是我的应用程序中的样子)的状态。

有解决这个问题的办法吗?我可以为每一行的反应窗口的本地状态吗?

代码框示例 x- gif是如何工作的

EN

回答 1

Stack Overflow用户

发布于 2020-05-16 21:02:01

简而言之,您不能这样做,问题是,当您删除一个项目时,以前用于它的组件将用于在其后面呈现项目(因此,如果您删除了第二个项,则第三个项将使用旧的第二个元素中的Row )。它将保持该项目的状态。如果添加了一个useEffect来检测项目是否发生了变化,那么在它之后就会破坏所有的东西(因为所有的东西都会弹出一个,删除项目之后的所有项目都会重置它们的状态)。您无法访问同级组件的状态,因此无法传播该状态。

你在这里有几个选择:

  1. 将所选内容添加到项的属性中,并提供一种更新该项的方法。
  2. 将选择状态作为App组件状态的一部分,并将其传递给组件,以便它能够适当地呈现。

我还要补充的是,您可能不希望像现在这样在每个呈现项的大列表上映射。看起来您这样做是为了公开deleteItems。我建议你做这样的事情:

代码语言:javascript
运行
复制
<FixedSizeList
  height={500}
  width={300}
  itemCount={items.length}
  itemSize={50}
  itemData={{items, deleteItem}}
>
  {Row}
</FixedSizeList>

然后,Row组件的data将同时具有items数组和deleteItem函数。如果在App中维护所选行状态,则可以轻松地扩展此状态以将所选状态和修改函数传递到Row组件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61842841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档