هل توجد طريقة لتشغيل كود معين (دالة ما) قبل إزالة العنصر من الصفحة DOM؟ بحيث يتم تنفيذ الكود وبعد الإنتهاء تمامًا يتم إزالة العنصر من الصفحة بالكامل.
ما أحاول القيام به هو عمل زر Toggle وعند الضغط عليه يظهر صندوق box وعند الضغط مرة أخرى على زر Toggle يجب حذف هذا الصندوق من الصفحة، ولكن أريد كذلك أن يتم تنفيذ كود معين قبل أن تتم إزالة العنصر من الصفحة، لذلك قمت بكتابة الكود التالي:
functionApp(){const[active, setActive]= useState(true);if(!active)returnnull;return<><button onClick={()=> setActive(!active)}>Toggle</button> <Box /></>;}functionBox(){const boxRef = useRef();const callBeforeUnmount =()=>{// use boxRef to do something}return<div className="box" ref={boxRef}>red box</div>}
المشكلة هنا أن boxRef.current تصبح null عند تغير active إلى false ويتم إزالة العنصر بشكل مباشر.
كيف يمكنني تشغيل الدالة callBeforeUnmount عند الضغط على وإنتظار إنتهائها وبعد ذلك إزالة العنصر من الصفحة؟
السؤال
Emad Saif
هل توجد طريقة لتشغيل كود معين (دالة ما) قبل إزالة العنصر من الصفحة DOM؟ بحيث يتم تنفيذ الكود وبعد الإنتهاء تمامًا يتم إزالة العنصر من الصفحة بالكامل.
ما أحاول القيام به هو عمل زر Toggle وعند الضغط عليه يظهر صندوق box وعند الضغط مرة أخرى على زر Toggle يجب حذف هذا الصندوق من الصفحة، ولكن أريد كذلك أن يتم تنفيذ كود معين قبل أن تتم إزالة العنصر من الصفحة، لذلك قمت بكتابة الكود التالي:
المشكلة هنا أن boxRef.current تصبح null عند تغير active إلى false ويتم إزالة العنصر بشكل مباشر.
كيف يمكنني تشغيل الدالة callBeforeUnmount عند الضغط على وإنتظار إنتهائها وبعد ذلك إزالة العنصر من الصفحة؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.