Vue: تحسين معلومات رسالة التحذير

تم إنشاؤها على ٢ أكتوبر ٢٠١٦  ·  40تعليقات  ·  مصدر: vuejs/vue

تقول "Vue Warn: معالج النقر على الحدث غير محدد"
لقد حصلت على خطأ في مكان ما يتعلق بالنقر فوق الحدث ، لدي المئات من المكونات مع أحداث النقر. في أي مكون / ملف سأحصل على الخطأ؟

erroe

improvement

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

أنا أستخدم Vue 2. إنه ليس خطأ. إنها رسالة خطأ لا فائدة منها. حسنًا ، يمكن لـ Vue أن يأخذ هذا كاقتراح لتحسين نمط رسالة الخطأ وجعله محددًا. لذلك ، بأي خطأ إذا ارتكب أي مطور خطأ ، يمكنه إصلاحه في وقت قصير من خلال معرفة مكان الخطأ بالضبط. بالمقارنة مع React JS ، فإنها تُظهر اسم المكون مع رقم السطر وبالطبع الخطأ أيضًا.

كل ما أتمناه ، هناك رسالة خطأ لتكون محددة.

ال 40 كومينتر

هذه القضية المرفوعة تتطلب المزيد من المعلومات. هل تستخدم vue 2 أو vue 1.
هل هو خطأ أم اقتراح؟ if bug ثم رابط قابل للاستنساخ على jsfiddle.
إذا لم يكن لدى أي من مكوناتك وظيفة معالج ، فلا يمكن أن تكون هذه مشكلة vue.

//الأفضل

أنا أستخدم Vue 2. إنه ليس خطأ. إنها رسالة خطأ لا فائدة منها. حسنًا ، يمكن لـ Vue أن يأخذ هذا كاقتراح لتحسين نمط رسالة الخطأ وجعله محددًا. لذلك ، بأي خطأ إذا ارتكب أي مطور خطأ ، يمكنه إصلاحه في وقت قصير من خلال معرفة مكان الخطأ بالضبط. بالمقارنة مع React JS ، فإنها تُظهر اسم المكون مع رقم السطر وبالطبع الخطأ أيضًا.

كل ما أتمناه ، هناك رسالة خطأ لتكون محددة.

هناك الكثير من الرسائل في Vue التي لا تقول الكثير حقًا. يبدو أن فحوصات سلامة Vue غير متوفرة ، للأسف.

أعتقد أنه إذا كان بإمكان vue إضافة المزيد من المعلومات إلى تحذيراته -

اسم المكون
نوع المكون
أو
يمكن أن تجعل رسالة التحذير قابلة للتكوين من أجل بيئة التنمية.

نحن نحاول توفير معلومات المكون كلما استطعنا ، ربما يكون هذا سهوا.

@ just - لا أحد يرجى تقديم أمثلة محددة على الرسائل التي تفتقر إلى حتى نتمكن من التحسين - مجرد الشكوى لا يحقق شيئًا.

لم أكن أشتكي حقًا ؛ اعتقدت أن هذا مجرد شيء يعرفه الناس بالفعل. لقد واجهت الكثير من حالات الحافة الصغيرة في الماضي والتي أعطت رسالة غريبة غير موصوفة للمشكلة الفعلية ، ولكن بدلاً من ذلك كانت متجذرة بعمق في المصدر ، ولم تصدر بعض المشكلات الأخرى أي خطأ ، وبدلاً من ذلك تسببت في عرض غريب خلل برمجي. كان تعقب البعض أسهل من غيرهم ، لذا لم أزعج عناء الإبلاغ عنهم لأنني أدركت أنني غبي فقط ، لكن واحدًا على وجه الخصوص لقد قمت بالفعل بإنشاء طلب سحب لأنه استغرق وقتًا طويلاً بالنسبة لي لمعرفة ما هو الخطأ .

أتخيل أن الكثير منهم قد تم إصلاحه الآن بعد أن خرج 2.0.1 ، لكن سيئتي للبقاء صامتة ، على ما أعتقد. رسالة للقراء: إذا كنت تعتقد أنه خطأ ، فأبلغ عنه ، حتى لو لم يكن خطأ.

@ yyx990803 حتى ، لا يساعد توفير مفتاح الاسم للمكون كثيرًا. شكرًا لزيارتكم وإضافة هذه المشكلة كتحسين.

:) شكرا ايفان

مرحبًا ، لقد لاحظت مؤخرًا أن نقص أرقام الأسطر يجعل الأمور صعبة التصحيح خاصةً إذا كان المكون كبيرًا. لدي مكون مع بضعة آلاف من الأسطر. تلقيت تحذيرًا
"[Vue warn]: خطأ في وظيفة التقديم:" TypeError: _vm.values ​​[item.name] غير معرّف ""

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

يرجى النظر في إضافة أرقام الأسطر في الإصدارات القادمة. شكرا لك.

+1 الرجاء إضافة أرقام الأسطر.

وصلتني الرسالة التالية ،

vue.js: 577 [Vue warn]: خطأ في العرض: "TypeError: لا يمكن قراءة الخاصية 'length' of undefined"
(عثر عليه في)

أعرف سبب فشلها ، في هذا البناء "المتغير الطول" إذا كان المتغير == فارغة. المشكلة هي أن لدي العديد من بنيات "الطول" ، والبيانات تأتي من خدمة خارجية.

نفس الشيء بالنسبة لي @ ameoba32
لديّ "لا أستطيع قراءة الخاصية 'length' of undefined" ولا أجد مكان المشكلة. إنه تطبيق ويب كبير لذا فهو صعب.
أفترض أنني وجدت الملف سببًا ولكني لا أعرف مكان الخطأ بالضبط.
هل يجب أن أمسح سطرًا سطرًا للعثور على السطر مكسورًا؟ وجه ضاحك

نفس الشيء هنا مثل @ ameoba32 . @ yyx990803 من فضلك افعل شيئا. شكرا!

أنا أحب vue - كثيرًا وأعمل معها لمدة عامين. إن الافتقار إلى الدقة في خطأ RENDER هو شكواي / طلبي الأول لإصلاحه. يحدث هذا الخطأ إما في القالب أو في رمز js المقابل. سيساعد رقم السطر بشكل كبير ، أو حتى إذا كانت المشكلة موجودة في القالب أو رمز js.

لديه نفس المشكلة

نعم. لدي نفس المشكلة ؛)

unreachable code after return statement[Więcej informacji] app.js:5248:4
unreachable code after return statement[Więcej informacji] app.js line 4957 > eval:5248:4
unreachable code after return statement[Więcej informacji] app.js:5248:4
unreachable code after return statement[Więcej informacji] app.js line 5136 > eval:5248:4

أنا أفهم ما يعنيه ذلك ، لكنني لا أعرف المكان الذي يجب أن أقوم بإصلاحه وتصفح جميع مكوناتي للعثور على هذه المشكلات هو نوع من العمل الشاق.

screen shot 2018-08-23 at 16 48 17

كذلك هنا.

vue.common.js لا يعني شيئًا بالنسبة لي عندما أحاول العثور على مكان حدوث الخطأ.

أوافق على أن مجرد رقم السطر في الملف المصدر سيؤدي إلى تسريع تصحيح الأخطاء كثيرًا

أي شيء جديد عن هذا؟ لماذا تم إغلاق القضية (حيث أن المشكلة لا تزال قائمة)؟

أحب أن يتم إصلاح هذا! تصحيح الأخطاء معقد للغاية الآن ، نحتاج إلى اسم الملف ورقم السطر لتصحيح الأخطاء بسهولة ، يرجى الإصلاح

أوافق أيضًا ، ملفات .vue الخاصة بي كبيرة جدًا وسيساعد الحصول على الموقع الدقيق.

لقد أحرزت بعض التقدم في تحديد أي مكون ويمكنني الحصول على رقم السطر (في كثير من الحالات) للخطأ. (أنا أستخدم مكونات ملف واحد). ولكن لا يزال هناك الكثير من التحقيقات التي يتعين القيام بها. آمل أن أنشر نتائجي في المستقبل.

@ gpadilla123 الله سبحانه سيدي. نتطلع إلى عملك.

في حالة استمرار أي شخص في تمشيط التعليمات البرمجية الخاصة بهم بحثًا عن عبارات إرجاع تالفة ، فقد وجدت مصدر الخطأ الذي يحدث عندما أستخدم تعبيرًا واستدعاء دالة في القالب:
:class="x=0; getClass()" في هذه الحالة ، أدت إزالة x=0; إلى التخلص من التحذير. ليس هذا هو الحال بالضرورة لأي شخص في هذه القائمة ، ولكن تذكير للتحقق من القالب.

حتى يومنا هذا لا يزال من غير الواضح مثل الكرات. أتلقى خطأ عندما يقوم vue بتقييم شيء ما لم يتغير حتى ...

يجب أن يحل Vue 3.0 هذه المشكلة نظرًا لأنه سيحتوي على رسائل خطأ أفضل ، لكن تاريخ إصدار Vue 3.0 يتراوح من نهاية الربع الثاني من عام 2019 إلى نهاية عام 2019. لقد طال انتظاره ، لذا فقد اخترقت طريقة للحصول على الخط أرقام الأخطاء (في بعض الحالات). يجب أن يكون الحل المخترق أكثر قوة ويعمل مع المزيد من الحالات.

نعم ، هذا يقتلني ، كنت أتوقع على الأقل رقم السطر أو شيء ما لتحديده بشكل أفضل

+1

هذا مميت. نحتاج إلى الإبلاغ عن السطور التي تحدث بها الأخطاء بشكل صحيح. في الوقت الحالي ، يبدو أنني أحصل على أرقام أسطر vue.js عديمة الفائدة تمامًا عند حدوث خطأ ، على سبيل المثال.

[Vue warn]: خطأ في العرض: "TypeError: لا يمكن قراءة الخاصية '0' من undefined"

[Vue warn]: Error in render: "TypeError: Cannot read property 'length' of undefined"
سيكون من الممتع البحث عن الخط. خاصة عندما يكون هناك الكثير من .length في الكود الخاص بي.

رسائل مثل هذه تشبه مطاردة أوزة برية. لا يوجد دليل على مصدر الخطأ: أتوقع رقم سطر ، واسم vue ، واسم الوظيفة التي قمت بإنشائها والتي ليست جزءًا من إطار عمل Vue. يحدث هذا في vue 2.5.17. لا توجد أيضًا مساعدة من تمديد تطوير vue في مثل هذه الحالات.

image

يسعدنا سماع أن هذا سيتم تناوله في Vue 3.0. في غضون ذلك ، وجدت نصيحة جيدة: انقر فوق مؤشر خط الخطأ في وحدة التحكم ، ثم ضع نقطة توقف على نفس السطر في مصدر Vue. يمكنك بعد ذلك إعادة تحميل الصفحة ، وسيتوقف مصحح الأخطاء عند نقطة الإيقاف ، ثم يمكنك العمل احتياطيًا للمكدس حتى تجد أحد مكوناتك ، وعادة ما يكون الخطأ موجودًا.

إنه ليس مثاليًا ولكنه قد يساعدك على التخلص من مطاردة الحشرات.

[Vue warn]: Error in render: "TypeError: Cannot read property 'length' of undefined"
سيكون من الممتع البحث عن الخط. خاصة عندما يكون هناك الكثير من .length في الكود الخاص بي.

وجدت أخيرا الخط.
لن يستغرق الأمر وقتًا طويلاً إذا تم حل المشكلة.

+1 ، تسجيل وحدة التحكم vue غير موجود بشكل كبير. خذ أدناه على سبيل المثال. إنه يخبرني بمكدس المكونات ، وهو أمر رائع ، لكن لا توجد إشارة إلى رقم السطر هنا ، وتشير مكدس الاستدعاءات بأكمله إلى تجميع كود vue ، وليس رمز المكون الخاص بي. كل ما تحتاجه هو رقم سطر بجوار اسم المكون.

image

أواجه أيضًا مشكلات في التصحيح بدون أرقام الأسطر ...

image

image
قبلت التحدى.

لقد كانت هذه مشكلة لسنوات وما زالت كذلك.

كنت أتصفح هذا على أمل أن يكون لدى شخص ما بعض الاختراق السري للغاية لهذا بالفعل أو بعض التحديثات بالفعل

+1

TypeError: Cannot read property 'length' of undefined

لكن لدي 30-50.length وأنا لا أعرف أين أخطأت.

نحتاج حقًا إلى رقم السطر في أخطاء العرض.

أي حل؟

يمكنني التأكيد ، أنا هنا فقط أحدق في الكود الخاص بي ... مع عدم وجود فكرة عن سبب فشلها.

إذا كان لـ Vue عيوبًا ، فسيكون هذا هو الوحيد

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