Rayden Storm نشر 31 مارس 2021 أرسل تقرير نشر 31 مارس 2021 في مكون React الخاص بي ، لدي زر مخصص لإرسال بعض البيانات عبر axios عند النقر فوقه. أحتاج إلى أن يحدث ذلك فقط في المرة الأولى ، أي تعطيل الزر بعد استخدامه لأول مرة. export default function Send() { const handleSubmit = () => { axios.post(...).then(res => {...}).catch(err => ...) } return ( <div> .... <button onClick={handleSubmit}>send</button> </div> ) } اقتباس
0 Abdullah Muhammad نشر 31 مارس 2021 أرسل تقرير نشر 31 مارس 2021 لديك عدة طرق أرفق لك منها إثنتين 1- بإستخدام ال state export default function Send() { const[buttonDisabled, setButtonDisabled] = useState(false); // الخطوة 1 const handleSubmit = () => { setButtonDisabled(true) // الخطوة 2 axios.post(...).then(res => {...}).catch(err => ...) } return ( <div> // .... الخطوة 3 <button disabled={buttonDisabled} onClick={handleSubmit}>send</button> </div> ) } 2- بإستخدام ال refs export default function Send() { const buttonRef = useRef(); // الخطوة رقم 1 const handleSubmit = () => { // الخطوة رقم 2 if(buttonRef.current){ buttonRef.current.setAttribute("disabled", "disabled"); } axios.post(...).then(res => {...}).catch(err => ...) } return ( <div> ....// الخطوة رقم 3 <button ref={buttonRef} onClick={handleSubmit}>send</button> </div> ) } 2 اقتباس
0 عبدالله عبدالرحمن11 نشر 3 أبريل 2021 أرسل تقرير نشر 3 أبريل 2021 (معدل) استخدم الكود السابق ويفضل عدم استخدام ref لأنه يقراء DOM مباشرةً إذا أردت إيقاف الزر بعد الضغط لأول مرة فقط فيمكنك استخدام كود عبدالله الكود رقم واحد اما إذا أردت إعادة تشغيل الزر إذا لم يتم إرسال البيانات بنجاح لكي يحاول مرة أخرى فاستخدم هذا الكود export default function Send() { const[buttonDisabled, setButtonDisabled] = useState(false); // الخطوة 1 const handleSubmit = () => { setButtonDisabled(true) // الخطوة 2 axios.post(...).then(res => {...}).catch(err => {setButtonDisabled(false)}) } return ( <div> // .... الخطوة 4 <button disabled={buttonDisabled} onClick={handleSubmit}>send</button> </div> ) } تم التعديل في 3 أبريل 2021 بواسطة عبدالمجيد الجرادي اقتباس
السؤال
Rayden Storm
في مكون React الخاص بي ، لدي زر مخصص لإرسال بعض البيانات عبر axios عند النقر فوقه. أحتاج إلى أن يحدث ذلك فقط في المرة الأولى ، أي تعطيل الزر بعد استخدامه لأول مرة.
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.