2.12.3
ماك ، كروم 61 ،
https://codepen.io/anon/pen/EvKmNO؟editors=001
يرجى النظر إلى وحدة التحكم لفحص السلوك في نموذج Codepen أثناء النقر فوق عناصر \ و \ و \
أعتقد أنه خطأ ... هل يمكن أن تعطينا العلاقات العامة لإصلاحها؟
بالتأكيد ، سأحاول إجراء علاقات عامة هذا الأسبوع: +1:
benjycui لا أفهم تمامًا لماذا يجب دائمًا تعيين هدف الحدث على عنصر الزر. يجب أن يكون هدف الحدث هو العنصر الذي نشأ فيه الحدث.
jddxf بالضبط ، عندما تنقر على <Button/>
تتوقع أن يتم تمريره كهدف ، بغض النظر عن الجزء الذي تنقر عليه من <Button/>
. (هذا وعد كامل للوحدات والمكونات ، ومجموعة من المدخلات ومجموعة من المنافذ المتسقة)
الآن قد يحتوي مكوّن Button على <span/>
أو عنصر آخر تحت الغطاء (وهو غير قابل للاستخدام حتى حيث لا أحد يعرف أنه موجود ، فهو موجود أسفل الغطاء مباشرة) ، قد تكون هذه العناصر أغلفة ، وقد تكون غير مرئية أو متكاملة في <Button/>
. تخيل الآن أن النقر على نفس الزر يتصرف بشكل مختلف في كل مرة ، فقط لأنك في بعض الأحيان نقرت على span
غير المرئي داخل Button
وأحيانًا على Button
نفسه ، ذلك لـ بالتأكيد غير متسق أو مرغوب فيه.
بالنسبة إلى وجهة نظرك ، يجب دائمًا تعيين هدف الحدث imo على الزر ، عند النقر فوق العنصر Button
(يجب أن تكون المكونات الفرعية والعناصر عبارة عن نقرات)
@ ميم أرماند فهمت وجهة نظرك. IMO ، قد يكون من الأفضل توفير مثيل Button
كوسيطة في رد الاتصال إذا كنت ترغب في تقديم تناسق على مستوى المكون. إذا كانت الوسيطة عبارة عن مثيل Event
(أو بشكل أكثر تحديدًا React.SyntheticEvent
) ، أفترض أن هدفها هو الهدف الحقيقي للحدث ، والذي يوفر تناسقًا على مستوى dom.
كملاحظة جانبية ، يمكنك دائمًا الرجوع إلى button
مع event.currentTarget
.
التعليق الأكثر فائدة
@ ميم أرماند فهمت وجهة نظرك. IMO ، قد يكون من الأفضل توفير مثيل
Button
كوسيطة في رد الاتصال إذا كنت ترغب في تقديم تناسق على مستوى المكون. إذا كانت الوسيطة عبارة عن مثيلEvent
(أو بشكل أكثر تحديدًاReact.SyntheticEvent
) ، أفترض أن هدفها هو الهدف الحقيقي للحدث ، والذي يوفر تناسقًا على مستوى dom.كملاحظة جانبية ، يمكنك دائمًا الرجوع إلى
button
معevent.currentTarget
.