在React中过滤待办事项列表可以通过以下步骤实现:
todos
。filter
。handleFilterChange
。该方法可以通过用户的输入或其他方式来更新过滤条件。以下是一个示例代码:
import React, { useState } from 'react';
const TodoList = () => {
const [todos, setTodos] = useState([
{ id: 1, text: 'Task 1', completed: false },
{ id: 2, text: 'Task 2', completed: true },
{ id: 3, text: 'Task 3', completed: false }
]);
const [filter, setFilter] = useState('all');
const handleFilterChange = (event) => {
setFilter(event.target.value);
};
const filterTodos = () => {
if (filter === 'completed') {
return todos.filter(todo => todo.completed);
} else if (filter === 'active') {
return todos.filter(todo => !todo.completed);
} else {
return todos;
}
};
return (
<div>
<label>
Filter:
<select value={filter} onChange={handleFilterChange}>
<option value="all">All</option>
<option value="completed">Completed</option>
<option value="active">Active</option>
</select>
</label>
<ul>
{filterTodos().map(todo => (
<li key={todo.id}>{todo.text}</li>
))}
</ul>
</div>
);
};
export default TodoList;
在上述示例中,我们使用了React的useState
钩子来定义状态。todos
数组存储待办事项列表,filter
存储过滤条件。handleFilterChange
方法用于更新过滤条件。filterTodos
方法根据过滤条件对待办事项列表进行过滤,返回过滤后的列表。在渲染方法中,我们将过滤条件和待办事项列表传递给filterTodos
方法,获取过滤后的列表,并将其渲染到页面上。
这是一个简单的React中过滤待办事项列表的实现。根据实际需求,你可以根据不同的过滤条件和待办事项列表结构进行相应的修改和扩展。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云