Adam Ebrahim نشر 29 مارس 2021 أرسل تقرير نشر 29 مارس 2021 هل توجد طريقة لعمل جملة if else في داخل دالة render مثلًا بهذا الشكل: render(){ return ( <div> if (this.props.found) {<h1>Some Content</h1>} else {<h1>Not Found<h1/>} </div> ) } بالطبع الكود السابق لن يعمل، لكني أحاول عمل شيء كهذا بدلًا من عمل جملتين return واحدة في داخل if وواحدة في else بالشكل التالي: render(){ if (this.props.found) { return ( <div> <h1>Some Content</h1> </div> ) } else { return ( <div> <h1>Not Found</h1> </div> ) } } فهل هناك طريقة لفعل مثل الكود السابق ولكن من داخل جملة return نفسها لكي لا أكرر باقي الكود مرتين؟ 1 اقتباس
0 Mohammed Saber6 نشر 29 مارس 2021 أرسل تقرير نشر 29 مارس 2021 يمكنك أن تستخدم ternary operator وهي صيغة مبسطة لل if condition ? true : false ولتطبيقها على المثال تكون كالآتي : render(){ return( <div> <h1>{this.props.found ? 'Some Content' : 'Not Found'}</h1> </div> ); } 1 اقتباس
0 Wael Aljamal نشر 29 مارس 2021 أرسل تقرير نشر 29 مارس 2021 يوجد عدة طرق لإنجاز المطلوب مثلا: تعريف دالة ضمن render ثم استدعائها في التابع return حيث تعيد هذه الدالة المكون المطلوب حسب شرط ما.. // ... class App extends Component { // ... render() { let {isLoggedIn} = this.state; const renderAuthButton = () => { if (isLoggedIn) { return <button>Logout</button>; } else { return <button>Login</button>; } } return ( <div className="App"> <h1> This is a Demo showing several ways to implement Conditional Rendering in React. </h1> {renderAuthButton()} </div> ); } } // ... أو بطريقة مختصرة باستخدام المعامل الثلاثي: حيث بعد اختبار الشرط سيتم إضافة المكون المناسب render() { let { isLoggedIn } = this.state; return ( <div className="App"> <h1> This is a Demo showing several ways to implement Conditional Rendering in React. </h1> {isLoggedIn ? <button>Logout</button> : <button>Login</button>} </div> ); } } 1 اقتباس
0 Abdullah Muhammad نشر 29 مارس 2021 أرسل تقرير نشر 29 مارس 2021 أجل يمكنك إستخدام الطريقة التاليه والتي تسمى ternary operator {this.props.found? <h1>Some Content</h1> : <h1>Not Found<h1/>} ففي حالة كان هناك props.found سوف يتم عرض المكون الذي يحوي some content وإلا فسيتم عرض المكون الذي يحتوي على Not Found 1 اقتباس
0 Salah Eddin Beriani2 نشر 31 مارس 2021 أرسل تقرير نشر 31 مارس 2021 لا يمكنك استخدام if else داخل ال return لكن يمكنك استخدام ternary operator ولحسن الحظ ليس فقط يمكنك استخدامها لتحاكي if else بل ايضا if else if else وذلك عن طريق ربطها كسلسلة متتالية import React from 'react'; export default function test() { return false ? <h1>1</h1> : false ? <h2>2</h2> : true ? <h3>3</h3> : null; } المثال في الأعلى هو نفسه if (false) { return <h1>1</h1>; } else if (false) { return <h2>2</h2>; } else if (true) { return <h3>3h3</h3>; } else { return null; } 1 اقتباس
0 عبدالله عبدالرحمن11 نشر 3 أبريل 2021 أرسل تقرير نشر 3 أبريل 2021 إذا أردت استخدام return واحدة فقط فالطريقة الوحيدة هي عبر استخدام ternary operator كما شرح الأخوة سابقا اما إذا أردت استخدام if و else فيجب عليك استخدام أكثر من return واحدة لكن إذا أردت استخدام nested ternay operator فسيكون الكود غير منظم وصعب القراءة ايضاً لهذا يفضل استخدام if و else لكود أكثر تنظيما وسهل القراءة اقتباس
السؤال
Adam Ebrahim
هل توجد طريقة لعمل جملة if else في داخل دالة render مثلًا بهذا الشكل:
بالطبع الكود السابق لن يعمل، لكني أحاول عمل شيء كهذا بدلًا من عمل جملتين return واحدة في داخل if وواحدة في else بالشكل التالي:
فهل هناك طريقة لفعل مثل الكود السابق ولكن من داخل جملة return نفسها لكي لا أكرر باقي الكود مرتين؟
5 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.