Vue: يكون $ attrs غير محدد عندما لا يحتوي المكون على خاصيات

تم إنشاؤها على ١ أغسطس ٢٠١٧  ·  8تعليقات  ·  مصدر: vuejs/vue

الإصدار

2.4.2

رابط الاستنساخ

https://jsfiddle.net/50wL7mdz/50757/

خطوات التكاثر

قم بالوصول إلى $ attrs كعنصر داخل سياق المكون ، عندما لا يتم توفير الخاصيات.

ما هو متوقع؟

Attrs $ هو كائن يحتوي على دعائم غير معروفة. لذلك أتوقع كائنًا فارغًا ، عندما لا يتم تحديد خاصيات في علامة المكون.

ما الذي يحدث بالفعل؟

attrs $ غير محدد

bug

التعليق الأكثر فائدة

واجهت هذا للتو وكان من غير المتوقع بالتأكيد بالنسبة لي أن $attrs يجب أن يكون undefined .

على سبيل المثال ، إذا كنت تكتب تطبيق todo يبدأ بدون مهام ، فسيكون من الغريب جدًا أن تبدأ القائمة كـ undefined بدلاً من [] . يجب عليك إضافة كشوفات حساب if (أو تسلسل اختياري) في جميع أنحاء تطبيقك. هذه الحالة مشابهة.

بالنسبة للحالات المتخصصة عندما يريد المستخدم التحقق مما إذا كان هناك أي $attrs موجودًا ، فلا يزال من الممكن استخدام Object.keys($attrs).length ، لذلك لا تزال هذه الحالة مغطاة

الجزء الذي يقنعني حقًا أن هذا خطأ ، هو أن $attrs _is_ يتم تعيينه على كائن فارغ عند تمرير الخاصية $attrs كلا الإستراتيجيتين:

$attrs && Object.keys($attrs).length

ال 8 كومينتر

بدافع الفضول ، ما المشكلة التي تواجهها من خلال الحصول على $attrs ؟ هل تقوم بالوصول إلى $attrs.something ؟ (إذا كان الأمر كذلك لماذا؟)

تحرير: أنا أسأل أيضًا لأن الحصول على $attrs يساوي غير محدد عندما لا يكون هناك Attrs يمكن أن يكون مفيدًا بالفعل

greegus ، في حال كنت تفعل شيئًا مثل if ($attrs.myProp) يمكنك فعل if ($attrs?.myProp) باستخدام babel-plugin-transform-Optional-chaining .

سأحكم على هذا السلوك المتوقع ، لكنه قابل للنقاش.

بينغ greegus

واجهت هذا للتو وكان من غير المتوقع بالتأكيد بالنسبة لي أن $attrs يجب أن يكون undefined .

على سبيل المثال ، إذا كنت تكتب تطبيق todo يبدأ بدون مهام ، فسيكون من الغريب جدًا أن تبدأ القائمة كـ undefined بدلاً من [] . يجب عليك إضافة كشوفات حساب if (أو تسلسل اختياري) في جميع أنحاء تطبيقك. هذه الحالة مشابهة.

بالنسبة للحالات المتخصصة عندما يريد المستخدم التحقق مما إذا كان هناك أي $attrs موجودًا ، فلا يزال من الممكن استخدام Object.keys($attrs).length ، لذلك لا تزال هذه الحالة مغطاة

الجزء الذي يقنعني حقًا أن هذا خطأ ، هو أن $attrs _is_ يتم تعيينه على كائن فارغ عند تمرير الخاصية $attrs كلا الإستراتيجيتين:

$attrs && Object.keys($attrs).length

أقنعني chrisvfritz - إنه خطأ.

LinusBorg يبدو أنه لا يوجد أحد يعمل على هذا الخطأ حاليًا. هل يمكنني الحصول على العلاقات العامة لهذا؟

أكيد!

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