شرح صفوف ومحتوى الفقرة
يُنفّذ رفع الحالة للأعلى (Lifting State Up) في ثلاث خطوات هندسية واضحة:
- إزالة متغير
useState()المحلي من المكونات الأبناء. - تمرير القيمة المشتركة نزولاً من أقرب أب مشترك عبر الخصائص مثل
isActive={activeIndex === 0}. - تمرير دالة معالجة حدث نزولاً مثل
onShow={() => setActiveIndex(0)}ليطلب الابن من أبيه تحديث الحالة عند التفاعل.
HTML
function Accordion() {
const [activeIdx, setActiveIdx] = useState(0);
return (
<>
<Panel title="Overview" isActive={activeIdx === 0}
onShow={() => setActiveIdx(0)} />
<Panel title="Syllabus" isActive={activeIdx === 1}
onShow={() => setActiveIdx(1)} />
</>
);
}