【发布时间】:2018-06-20 12:47:19
【问题描述】:
我正在用 React 构建经典的“待办事项”应用程序。 我想实现基于状态过滤待办事项的功能:已完成、活动和全部。
我通常复制我的原始状态,然后将更改应用到副本。
问题是我在数组上使用过滤器时丢失了原始 TODO,所以当我使用“全部”按钮时,我无法在过滤之前检索我的数据。
这是我的状态:
state = {
todos: [
{ id: 432402, title: "Make some music", isDone: false },
{ id: 421402, title: "Conquer the world", isDone: false },
{ id: 427740, title: "Go to the mall", isDone: true },
{ id: 471402, title: "Do some homework", isDone: false }
]
};
这是我用来根据完成状态过滤状态的功能之一
filterCompletedTasks = () => {
const todos = [...this.state.todos];
const filtered = todos.filter(todo => {
return todo.isDone;
});
我目前不使用 redux 或 Immutable.js,所以任何关于使用简单 React 的帮助都会非常有用。
【问题讨论】:
-
你在修改过滤后的状态,你是如何使用filterCompletedTasks的。需要更多代码才能提供帮助
-
是的。我使用 this.setState({ todos: filtered });
标签: javascript arrays reactjs filtering state