Freecodecamp: [إصدار تجريبي] تعرف على علامات JSX ذاتية الإغلاق

تم إنشاؤها على ١٣ فبراير ٢٠١٨  ·  4تعليقات  ·  مصدر: freeCodeCamp/freeCodeCamp



اسم التحدي

تعرف على المزيد حول علامات JSX ذاتية الإغلاق

وصف المشكلة


أزلت التعليقات وأغلقت العلامات (فوّت علامة br في المحاولة الأولى فشلت ثم تم إصلاحها) ثم فشلت المحاولة ولكن بعد ذلك تم عرض العنصر على الصفحة.

تم الإخفاق من: يجب أن يتم عرض عنصر JSX المقدم كما هو مع عقدة DOM مع معرف عقدة التحدي.
تم عرض العنصر في المعاينة عند تلقي هذا الخطأ.
يبدو أنه لا يتم تقديمه باستخدام معرف عقدة التحدي ولكن بدلاً من ذلك معرف الجذر.

الكود المضاف: ReactDOM.render(JSX, document.getElementById('challenge-node'));
اجتازت الاختبارات والآن يتم عرضها مرتين في المعاينة.

يقول التحدي:

أصلح الأخطاء في محرر الكود بحيث يكون JSX صالحًا ويتم نقله بنجاح. تأكد من عدم تغيير أي محتوى - ما عليك سوى إغلاق العلامات عند الحاجة إليها.

لا يذكر الحاجة إلى إرفاقه بـ DOM ويبدو أنه يشير إلى أنك تحتاج فقط إلى ضبط فاصل الأسطر والخط الأفقي.

حل:
تحتاج إلى إضافة اتجاهات لتقديمها إلى DOM وإزالة المعاينة الحالية.
أو تحتاج إلى ضبط المعاينة لتكون خارج عقدة التحدي بدلاً من معرف الجذر.
أو هناك حل آخر لا أستطيع التفكير فيه حاليًا.

كودك

Failed:
const JSX = (
  <div>
    <h2>Welcome to React!</h2><br />
    <p>Be sure to close all tags!</p>
    <hr />
  </div>
);

Passed: 
const JSX = (
  <div>
    <h2>Welcome to React!</h2><br />
    <p>Be sure to close all tags!</p>
    <hr />
  </div>
);
ReactDOM.render(JSX, document.getElementById('challenge-node'));

help wanted learn

ال 4 كومينتر

شكرا على الإبلاغ القضية! لا أعتقد أنه يجب علينا إضافة توجيهات لتصيير المكون إلى DOM.

سيكون غير متسق مع سلوكيات جميع تحديات عنصر React DOM الأخرى. على سبيل المثال ، في التحدي السابق ، حدد فئة HTML في JSX ، لا حاجة إلى ReactDOM.render لاجتياز التحدي.

TJBarrettJR السبب في أن إضافة ReactDOM.render إلى محرر الكود أدى إلى عرض المكون مرتين بسبب الطريقة التي يتم بها عرض التعليمات البرمجية المصنفة في freeCodeCamp. الملفات لها كود "جسم" ورمز "ذيل". يتم إضافة الذيل إلى رمز المستخدم وعادةً ما يحتوي على سطر ReactDOM.render ، مما يؤدي إلى عرضين.

يتم تضمين خط التقديم (الموضح أدناه) حاليًا في البذور كحل.

ReactDOM.render(JSX, document.getElementById('challenge-node'));

يتم اختباره أيضًا من أجل. سأفتح فقط PR لتعديل الحل وإزالة الاختبار.

إنه أمر مثير للاهتمام — challenge-node id محجوز للتدريبات التي تقدم عناصر HTML إلى DOM ؛ لست متأكدًا كيف انتهى الأمر في ملف البذور.

لقد تحققت من هذا ReactDOM.render[ing] غير الضروري في تحديات React الأخرى ؛ لا يوجد آخرون.

@ jkao1 هذا منطقي لماذا قدم مرتين ، شكرا لك!

حتى الآن لم أر أي شيء خارج عن المألوف مع التحديات الأخرى ، لكنني ما زلت أعمل من خلاله.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات