12

チャート作成作業を行っていますが、チャート上に何も作成されていないときに、「レイアウトの実行に失敗しました」という1行のメッセージが表示されました。これを調べてみると、ここで説明するように、ログファイルを生成するためにいくつかのスクリプトファイルを追加する必要があることがわかりました。

レイアウトの失敗

4.1でのレイアウトエンジンの設計の結果、不適切な構成(またはバグ)により、レイアウト実行がすべての計算を完了できなくなる可能性があります。これが発生すると、レイアウトは単に停止し、DOMにフラッシュされた部分的な結果だけが表示されます。場合によっては、レイアウトが99%完成していて、障害が検出されないか、軽微な視覚的異常として表示されることがあります。その他の場合、レイアウトが早期に失敗し、UIが明らかに壊れた状態のままになることがあります(以前のバージョンでのレイアウト中のJSエラーのように)。

診断

レイアウトの失敗が疑われる場合の最初のステップは、レイアウト診断を有効にすることです。これは、通常の「ext-all.js」ファイルを「ext-all-dev.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構成に置き換えて、障害の原因となっているコンポーネントに焦点を合わせ、エラーが再発するまでどれだけ戻すことができるかを確認します。 docs/samplesに対して目で確認できる構成の残りの数行。

于 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で定義されていないコンポーネントでuiconfig使用する。

デバッグするには、例外がスローされたビューのレイアウトを調査する必要があります。

残念ながら、利用可能なドキュメントはありません。

出典:煎茶サポート

于 2015-04-23T11:59:29.933 に答える