12

当图表上没有创建任何内容时,我正在做一些图表工作并收到单行消息“布局运行失败”。调查这个我发现我必须添加一些额外的脚本文件来生成日志文件,如此所述:

布局失败

由于 4.1 中布局引擎的设计,不正确的配置(或错误)可能导致布局运行无法完成其所有计算。发生这种情况时,布局会停止,并且已刷新到 DOM 的部分结果是可见的。在某些情况下,布局可能已完成 99%,故障可能未被检测到或显示为轻微的视觉异常。在其他情况下,布局可能会提前失败并使 UI 处于明显损坏的状态(很像以前版本中布局期间的 JS 错误)。

诊断

如果您怀疑您看到布局失败,第一步是启用布局诊断。这是通过用“ext-all-dev.js”替换普通的“ext-all.js”文件并添加几个额外的脚本来完成的。

我添加了所需的脚本:

<script type="text/javascript" src="extjs/src/diag/layout/Context.js"></script>
<script type="text/javascript" src="extjs/src/diag/layout/ContextItem.js"></script>

现在我得到了我无法理解的诊断数据——它似乎没有诊断出错误:

++printer<autocontainer> - size: configured/shrinkWrap
    --statprint-1472<autocontainer> - size: configured/configured
        triggeredBy: count=1
            statprint-1472.containerChildrenDone:dom () dirty: false, setBy: ?
        --chart-1473<draw> - size: shrinkWrap/shrinkWrap
            triggeredBy: count=1
                chart-1473.containerChildrenDone:dom (true) dirty: false, setBy: ?
    ++panel-1474<dock> - boxParent: printer - size: natural/configured
    ++panel-1474<autocontainer> - boxParent: printer - size: natural/configured
    ++statprint-1472<dock> - size: configured/configured
        ++statprint-1472_header<body> [isBoxParent] - size: calculated/shrinkWrap
        ++statprint-1472_header<hbox> [isBoxParent] - size: calculated/shrinkWrap
            ++statprint-1472_header_hd<autocomponent> [isBoxParent] - size: calculated/shrinkWrap
            ++tool-1475<autocomponent> [isBoxParent] - size: configured/configured

有谁知道诊断信息在哪里解释?

4

3 回答 3

14

我发现这些类型的错误通常通过注释掉直到它消失的方法来最快地解决,以隔离哪个组件配置导致布局失败。从内到外注释掉子组件,用填充 html 配置替换它们,直到您将导致故障的组件归零,然后查看在错误再次出现之前您可以放回多少,您应该只看剩下的几行配置,您可以查看文档/示例。

于 2013-10-11T19:34:30.930 回答
4

我在我的应用程序中收到“布局运行失败”消息,发现问题是由于忘记在 Viewport.js 文件中设置布局属性引起的。一旦我在那里定义了布局,一切都运行得非常好。:)

例子:

Ext.define('MyApp.view.Viewport',{
   extend    : 'Ext.container.Viewport',

   layout  : 'fit',

});
于 2013-03-28T05:06:11.293 回答
3

部分原因可归结为——

  1. 过度嵌套(在布局内查找布局。某些布局嵌套组合会出现此错误)
  2. 容器缺少布局。
  3. 容器或其子容器缺少大小信息。例如高度/宽度或弹性。
  4. 在 sass 中未定义的组件上使用ui配置。

要进行调试,我们应该调查引发异常的视图中的布局。

不幸的是,没有可用的文档。

来源:煎茶支持

于 2015-04-23T11:59:29.933 回答