我正在尝试消除警告:
[PLUGIN discourse-layouts] 为防止测试出错,请在 `modifyClass` 调用中添加 `pluginId` 键。这将确保修改只应用一次。
但是,在 Layouts 插件的情况下,有一个名为 Sidebars 的 Mixin 被传递给 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 被反复应用的检查。
大家有什么建议或想法,如何在使用 mixin 时将 pluginId 添加到 api.modifyClass() 中并成功抑制该警告吗?