3

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

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

就我而言,这是故意的。警告越来越多,开始很难只见树木不见森林。

  • 我可以以某种方式仅针对那些有意的类关闭这些语句吗?
  • 重命名我的所有别名是更好的解决方案吗?
4

2 回答 2

3

我建议重命名您的别名。

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

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

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

希望这能回答你的问题!

于 2015-09-27T20:27:38.290 回答
0

addAlias您可以通过在调用时强制将“update”参数设置为 true 来轻松覆盖警告addMapping

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

https://fiddle.sencha.com/#fiddle/1dec

于 2016-07-11T15:54:01.027 回答