Here is my component:
After clicking delete, the checkbox underneath it becomes checked, even though it was never clicked.
Here is the parent and child component implementations (new to React)
TaskList.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;
Task.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>
);
}

