如何在 Ext JS 6 中隐藏 "Is this intentional?" 警告?
How to hide "Is this intentional?" warning in Ext JS 6?
我目前正在开发一个 Ext JS 6 应用程序,它在组件上具有一定程度的继承性,其中一些别名映射被覆盖。 Ext JS 调试非常友好,每次我这样做时都会让我知道。
[W] Overriding existing mapping: 'controller.my-controller' From 'MyBase.app.Controller' to 'MySub.app.Controller'. Is this intentional?
就我而言,这是故意的。警告层出不穷,只见树木不见森林开始变得越来越困难。
- 我能否以某种方式为那些 类 故意关闭这些语句?
- 重命名我的所有别名是更好的解决方案吗?
我建议重命名您的别名。
有两个具有相同别名的 类 可能会在尝试实例化其中之一时导致问题。已经有一个 great answer to this question for 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);
};
我目前正在开发一个 Ext JS 6 应用程序,它在组件上具有一定程度的继承性,其中一些别名映射被覆盖。 Ext JS 调试非常友好,每次我这样做时都会让我知道。
[W] Overriding existing mapping: 'controller.my-controller' From 'MyBase.app.Controller' to 'MySub.app.Controller'. Is this intentional?
就我而言,这是故意的。警告层出不穷,只见树木不见森林开始变得越来越困难。
- 我能否以某种方式为那些 类 故意关闭这些语句?
- 重命名我的所有别名是更好的解决方案吗?
我建议重命名您的别名。
有两个具有相同别名的 类 可能会在尝试实例化其中之一时导致问题。已经有一个 great answer to this question for ExtJS 5 有更详细的解释。 ExtJs 6 的核心概念相同。
因为 别名应该始终是唯一的(在它的命名空间中),保留警告可能是个好主意,以防万一您错过了什么……;- )
如果您真的想抑制这些警告,您可以用一个空的 覆盖 Ext.log.warn 函数。正如您在 ext/packages/core/src/class/Inventory.js 中看到的那样,似乎没有其他解决方法。
希望这能回答您的问题!
您可以通过在 addAlias
调用 addMapping
.
Ext.Inventory.prototype.addAlias = function(className,alias, update) {
return this.addMapping(className, alias, this.aliasToName, this.nameToAliases, true);
};