Ember.js: خطأ مضلل في الترحيل 3.15

تم إنشاؤها على ٢٧ ديسمبر ٢٠١٩  ·  3تعليقات  ·  مصدر: emberjs/ember.js

خلال مغامرات الهجرة الخاصة بي ، عثرت على هذا الخطأ:

index.js:172 Uncaught Error: Assertion Failed: You attempted to generate a link 
for the "cashbook" route, but did not pass the models required for generating 
its dynamic segments. Assertion Failed: The <strong i="6">@action</strong> decorator must be 
applied to methods when used in native classes

Screenshot 2019-12-27 at 22 31 47

لقد تم الخلط بيني وبين الجزء الأول من "إنشاء الرابط" ، ولكن المشكلة الرئيسية تكمن في "

أعتقد أن هناك طريقتان لتحسين DX:
1) يبدو أنه أيًا كان ما ينتج عنه خطأ "مسار دفتر النقدية" (أفترض أن المكون LinkTo ؟) بمجرد أن يكتشف استثناءً ، فإنه يفترض خطأً أن models لم يتم توفيره.
2) إذا كان الخطأ الثاني الذي يشكو من @action يعطيني تلميحًا حول الملف غير الصحيح ، فسأجد مصدر المشكلة بشكل أسرع.


ملاحظة سفلية لمن قد يعاني من نفس المشكلة: صادف أن لديّ action و task (من ember-concurrency) محدّد في وحدة تحكم واحدة بنفس الأسماء . بعد تشغيل codemod npx ember-native-class-codemod http://localhost:4200 ./app ، اصطدمت أسماؤهم في مساحة الاسم على مستوى الفصل الدراسي.

Bug

ال 3 كومينتر

قليلاً من الخلفية هنا ، تمت إضافة التأكيد المعني في https://github.com/emberjs/ember.js/pull/14554. يفترض هذا الإصلاح أن السبب الوحيد وراء حدوث هذا الخطأ هو أنك لم تقدم ما يكفي من المعلمات الديناميكية (والسبب في زيادة رسالة الخطأ هو أنك بحاجة إلى معرفة المسار الهدف).

أعتقد أن الإصلاح الصحيح هنا هو تحديث كتلة catch :

https://github.com/emberjs/ember.js/blob/d1ad76a2b22ce470639df3dfc6efb6864a70f588/packages/٪40ember/-internals/glimmer/lib/components/link-to.ts#L770 -L777

إما ل:

  1. قم بإزالة الجزء المتعلق بالمقاطع الديناميكية غير الصالحة (بحيث تذكر الرسالة شيئًا مثل "حدث خطأ أثناء إنشاء ارتباط
    عن مسار "دفتر النقدية" ، $ {e.message} "
  2. تحقق مما إذا كان الخطأ الذي تم طرحه بالفعل هو الخطأ المتوقع ، وإذا كان الخطأ هو assert ، إذا لم يكن كذلك ، فقم بـ throw e

نعم ، لقد عانيت للتو من نفس المشكلة في 3.18 ، شكرًا لنشر هذا ، جعل من السهل رؤية ما وراء إنشاء بت الارتباط إلى المشكلة الحقيقية لـ action decorator في حالتي التي تحمل نفس اسم آخر.

في حالتي كانت أسماء الإجراءات مكررة

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