Подтвердить что ты не робот

Понимание "Ошибка выполнения макета"

Я занимаюсь графикой и получаю однострочное сообщение "Ошибка выполнения макета", когда на диаграмме ничего не создавалось. В этом я обнаружил, что мне нужно добавить несколько дополнительных файлов script для создания файлов журналов, как описано здесь:

Ошибки макета

В результате разработки механизма компоновки в 4.1 возможно для неправильной настройки (или ошибки), чтобы привести к неудачному выполнению макета завершить все его вычисления. Когда это происходит, макет просто и частичные результаты, которые были сброшены в DOM, все, что видно. В некоторых случаях макет может составлять 99% и отказ может остаться незамеченным или появиться как незначительная визуальная аномалия. В в других случаях макет может завершиться неудачно и оставить пользовательский интерфейс четко разбитое состояние (как 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

Кто-нибудь знает, где объясняется диагностическая информация?

4b9b3361

Ответ 1

Я нахожу, что эти типы ошибок часто решаются самым быстрым способом с использованием метода "комментарий-от-до-у-у-у-у", чтобы изолировать конфигурацию компонента, которая вызывает сбой макета. Прокомментируйте дочерние компоненты изнутри, заменив их накладкой html config, пока вы не обнуляете, на каком компоненте возникла ошибка, а затем посмотрите, сколько вы можете вернуть, пока ошибка не вернется, и вы должны смотреть только несколько оставшихся строк конфигурации, которые вы можете наблюдать за документами/образцами.

Ответ 2

Я получал сообщения "Ошибка выполнения макета" в своем приложении и обнаружил, что проблема была вызвана тем, что забыла установить свойство макета внутри моего файла Viewport.js. Как только я определил макет там, все отлично работало хорошо.:)

Пример:

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

   layout  : 'fit',

});

Ответ 3

Некоторые из причин можно отнести как -

  • Overnesting (искать макеты внутри макета. Некоторые вложенные комбинации компоновки будут давать эту ошибку)
  • В контейнере отсутствует макет.
  • В контейнере или его дочерних элементах отсутствует информация о размерах. Для пример высоты/ширины или гибкости.
  • Используя ui config для компонента, который не определен в sass.

Чтобы отлаживать, мы должны исследовать макеты в представлениях, где генерируется исключение.

К сожалению, документации нет.

источник: поддержка Sencha