إضافة pluginId لتعديل الفئة عند استخدام mixin

أحاول التخلص من التحذير:

[PLUGIN discourse-layouts] لمنع الأخطاء في الاختبارات، أضف مفتاح `pluginId` إلى استدعاء `modifyClass` الخاص بك. سيضمن ذلك تطبيق التعديل مرة واحدة فقط.

ولكن، في حالة إضافة المكون الإضافي Layouts، هناك Mixin يسمى Sidebars يتم تمريره إلى الطريقة api.modifyClass() على النحو التالي:

api.modifyClass(controllerClass, Sidebars) (انظر الكود)

لقد جربت العديد من الأشياء، بما في ذلك إضافة pluginId إلى خاصية على Mixin:

export default Mixin.create({
  pluginId: 'discourse-layouts',
  router: service(),
  path: alias("router._router.currentPath"),
...
});

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

الطريقة الوحيدة التي تمكنت بها من قمع التحذير كانت باستخدام هذا الكود بدلاً من modifyClass()

 const klass = api._resolveClass(controllerClass, {});
 klass.class.reopen(Sidebars);

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

هل لدى أي شخص أي نصائح أو أفكار حول كيفية إضافة pluginId إلى api.modifyClass() عند استخدام mixin وإخماد هذا التحذير بنجاح؟

5 إعجابات