【发布时间】:2022-01-29 09:38:42
【问题描述】:
我在根据复选框值过滤我的待办事项数据时遇到了困难。默认选中复选框,显示响应中的所有数据。当单独选中 Show Completed 时,它应该只显示已完成的项目,类似于 Show Incompleted 复选框。
export const Todo = () => {
const [todo, setTodo] = useState([]);
const [loading, setloading] = useState(false);
//获取的数据
async function fetchData() {
setloading(true);
const data = await fetch("https://jsonplaceholder.typicode.com/todos ");
let res = await data.json();
res = res.splice(0, 20);
setTodo(res);
setloading(false);
}
useEffect(() => {
fetchData();
}, []);
//处理onChange
const compCheck = (e) => {
};
const InCompCheck = (e) => {
};
return (
<>
{loading && (
<h1>
<Loader />
</h1>
)}
{!loading && (
<>
<TodoItems todo={todo} loading={loading} />
<div id="filter-holder">
<label>Show Completed</label>
<input
id="completed-checkbox"
type="checkbox"
onChange={compCheck}
checked //by default should be checked to show complete list
/>
<br />
<label>Show Incompleted</label>
<input
id="incompleted-checkbox"
type="checkbox"
onChange={InCompCheck}
checked
/>
</div>
</>
)}
</>
);
};
这是沙盒链接:https://codesandbox.io/s/todo-fetcher-and-filter-rci40?file=/src/Todo.js
【问题讨论】:
标签: reactjs filter react-hooks onchange checkboxlist