Sto cercando di eliminare l’avviso:
[PLUGIN discourse-layouts] Per evitare errori nei test, aggiungi una chiave `pluginId` alla tua chiamata `modifyClass`. Ciò garantirà che la modifica venga applicata una sola volta.
Tuttavia, nel caso del plugin Layouts, c’è un Mixin chiamato Sidebars che viene passato al metodo api.modifyClass() in questo modo:
api.modifyClass(controllerClass, Sidebars) (Vedi codice)
Ho provato molte cose, incluso aggiungere il pluginId a una proprietà sul Mixin:
export default Mixin.create({
pluginId: 'discourse-layouts',
router: service(),
path: alias("router._router.currentPath"),
...
});
Tuttavia, l’avviso continua ad apparire.
L’unico modo in cui sono riuscito a sopprimere l’avviso è stato utilizzando questo codice invece di modifyClass()
const klass = api._resolveClass(controllerClass, {});
klass.class.reopen(Sidebars);
Tuttavia, non credo sia l’approccio migliore perché sto essenzialmente saltando il controllo che aiuta a prevenire che modifyClass venga applicato più e più volte.
Qualcuno ha consigli o pensieri su come posso aggiungere il pluginId a api.modifyClass() quando viene utilizzato un mixin e sopprimere con successo quell’avviso?