这是我的组件:
单击"删除"后,它下面的复选框变为选中状态,即使从未单击过它.
下面是父组件和子组件实现(新的react )
任务列表.js公司
import { useState, useRef } from "react";
import Task from "./Task";
function TaskList({ className, tasks, setTasks }) {
let inputRef = useRef();
return (
<div className={className}>
<ul className="grow overflow-y-scroll">
{tasks.map((task, i) => (
<Task
description={task.description}
onChange={() => {
task.checked = !task.checked;
}}
/>
))}
</ul>
<input
className="my-2 border-b-2 border-blue-300"
placeholder="Enter task description..."
ref={inputRef}
></input>
<button
className="rounded-md bg-blue-400 w-full p-4 text-white text-2xl"
onClick={() => {
setTasks([
...tasks,
{ description: inputRef.current.value, checked: false },
]);
}}
>
Add
</button>
<button
className="w-full bg-red-600 rounded-md p-2"
onClick={() => {
setTasks(tasks.filter((t) => !t.checked));
}}
>
Delete
</button>
</div>
);
}
export default TaskList;
任务js公司
import React, { useState } from "react";
function Task({ description, onChange }) {
return (
<li className="flex flex-row my-2">
<input className="mx-2" type="checkbox" onChange={onChange}></input>
<span>{description}</span>
</li>
);
}