2.4.2
https://jsfiddle.net/50wL7mdz/50757/
قم بالوصول إلى $ attrs كعنصر داخل سياق المكون ، عندما لا يتم توفير الخاصيات.
Attrs $ هو كائن يحتوي على دعائم غير معروفة. لذلك أتوقع كائنًا فارغًا ، عندما لا يتم تحديد خاصيات في علامة المكون.
attrs $ غير محدد
بدافع الفضول ، ما المشكلة التي تواجهها من خلال الحصول على $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 يبدو أنه لا يوجد أحد يعمل على هذا الخطأ حاليًا. هل يمكنني الحصول على العلاقات العامة لهذا؟
أكيد!
التعليق الأكثر فائدة
واجهت هذا للتو وكان من غير المتوقع بالتأكيد بالنسبة لي أن
$attrs
يجب أن يكونundefined
.على سبيل المثال ، إذا كنت تكتب تطبيق todo يبدأ بدون مهام ، فسيكون من الغريب جدًا أن تبدأ القائمة كـ
undefined
بدلاً من[]
. يجب عليك إضافة كشوفات حسابif
(أو تسلسل اختياري) في جميع أنحاء تطبيقك. هذه الحالة مشابهة.بالنسبة للحالات المتخصصة عندما يريد المستخدم التحقق مما إذا كان هناك أي
$attrs
موجودًا ، فلا يزال من الممكن استخدامObject.keys($attrs).length
، لذلك لا تزال هذه الحالة مغطاةالجزء الذي يقنعني حقًا أن هذا خطأ ، هو أن
$attrs
_is_ يتم تعيينه على كائن فارغ عند تمرير الخاصية$attrs
كلا الإستراتيجيتين: