arrays - 尝试使用反应钩子设置状态,但我得到的是一个空数组
问题描述
正如你所看到的,我对 React.js 还很陌生。在这里,我正在尝试创建一个待办事项列表应用程序。它的顶部应该有三个按钮——一个用于显示已完成的任务,第二个用于未完成的任务,最后一个用于显示列表中的所有任务。所以,我需要两个列表——一个用于添加到列表中的每个项目,另一个用于过滤我猜。问题是在这种情况下我无法掌握状态,我的过滤器数组是空的。我不想直接改变状态,但尝试了很多事情,我不得不做错事。这是第一个按钮的代码。
我想点击按钮,重新渲染网站并获得过滤项目列表。
//todos, setTodos are for my primary state
const TodoFilter = ({ todos, setTodos}) => {
const [filter, setFilter] = useState([])
const handleActive = () => {
const allTodos = [...todos]
const completedFilter = allTodos.filter(item => item.isComplete === true)
setFilter(completedFilter)
}
解决方案
您的代码丢失了很多,所以不确定这是您迄今为止编码的所有内容,还是您没有包含其他一些位。在清除它们之前,您需要添加一个复选框来检查已完成的待办事项。
请尝试使用以下代码从未完成的待办事项中过滤已完成的待办事项,并假设您有一个清除它的按钮。希望这可以帮助
function handleCleartodos() {
const completedFilter = allTodos.filter(item => !item.isComplete)
setFilter(completedFilter)
}
<button onClick={handleCleartodos}>Clear Todos</button>
推荐阅读
- android - 启动 Android AVD 时无法获取属性集
- symfony - API 平台模型属性是只读的
- maven - 同一个应用程序中的两个版本的spring
- javascript - Trampoline 递归导致“超出最大调用堆栈大小”
- angular - 具有引导响应式设计的角度虚拟滚动
- python - 为什么索引这个 Numpy 矩阵会导致错误?
- sapui5 - Input control with suggestions Issue - SAP UI5
- sql-server - 从 XML 列中查询属性
- angular - Angular 项目中 npm 安装上的 errno -4048
- php - 如何通过对相同 id 的值进行分组来创建新数组