过滤状态数据效果不佳 - React (CRA)

Filtering the state data doesn't work fine - React (CRA)

我创建了一个简单的待办事项应用程序。我可以将项目添加到待办事项,并通过 allcompletedincomplete 过滤列表。所有列表分别呈现。问题是当我是 completedincomplete 过滤器中的任何一个时,我分别选中或取消选中任务,列表应该在每个 check/uncheck 上再次过滤。我可以调用 filter 方法,但是状态有一些意外的行为,它会删除列表元素,除了我 check/uncheck 当任何过滤器处于活动状态时。

我已经创建了这个沙盒,玩玩吧。

Sanbox

我认为你的问题是,当你检查一个项目时,在 modifyList 中你将 copiedList 设置为 list 的先前状态,这是整个项目的过滤子集数据。 将 setList 更改为 setCopiedList 似乎已经解决了我的问题。

const modifyList = (list) => {
  setCopiedList((prevState) => {
    let state = [...prevState];
    return state;
  });
};