如何隐藏“这是故意的吗?”Ext JS 6中的警告

How to hide "Is this intentional?" warning in Ext JS 6?

本文关键字:Ext JS 警告 故意 何隐藏 隐藏      更新时间:2023-09-26

我目前正在开发一个Ext JS 6应用程序,该应用程序在组件上具有某些级别的继承,其中一些别名映射被覆盖。Ext JS调试是如此友好,让我知道每次我这样做。

[W] Overriding existing mapping: 'controller.my-controller' From 'MyBase.app.Controller' to 'MySub.app.Controller'. Is this intentional?

在我的例子中,这是有意的。警告越来越多,只见树木不见森林开始变得越来越困难。

  • 我可以把这些语句关闭,只是为了那些类是有意的吗?
  • 重命名我所有的别名是一个更好的解决方案?

我建议重命名您的别名。

拥有两个具有相同别名的类可能会在尝试实例化其中一个类时导致问题。对于这个问题,ExtJS 5已经有了一个很好的答案,有了更详细的解释。核心概念与ExtJs 6相同。

由于别名应该始终是唯一的(在它的命名空间中),因此保留警告可能是一个好主意,以防万一您错过了什么……: -)

如果你真的想要抑制这些警告,你可以用一个空的覆盖Ext.log.warn函数。正如你在ext/packages/core/src/class/Inventory.js中看到的那样,似乎没有其他方法可以替代它。

希望这能回答你的问题!

addAlias调用addMapping时,您可以通过强制"update"参数设置为true来轻松覆盖警告。

Ext.Inventory.prototype.addAlias = function(className,alias, update) {
    return this.addMapping(className, alias, this.aliasToName, this.nameToAliases, true);
};

https://fiddle.sencha.com/小提琴/12月1