شرح صفوف ومحتوى الفقرة
لتعديل عنصر واحد أو تبديل حالة إنجاز مهمة داخل مصفوفة كائنات، استخدم الدالة map()؛ فعندما يتطابق item.id === targetId نعيد كائناً منسوخاً جديداً { ...item, done: !item.done }، ونعيد بقية العناصر كما هي دون تعديل.
HTML
import { useState } from 'react';
function TaskChecklist() {
const [tasks, setTasks] = useState([
{ id: 1, text: 'Write SVG', done: false },
]);
const flip = (id) =>
setTasks(tasks.map((t) =>
t.id === id ? { ...t, done: !t.done } : t
));
return <button onClick={() => flip(1)}>Done</button>;
}