Понимание "Ошибка выполнения макета"
Я занимаюсь графикой и получаю однострочное сообщение "Ошибка выполнения макета", когда на диаграмме ничего не создавалось. В этом я обнаружил, что мне нужно добавить несколько дополнительных файлов 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
Кто-нибудь знает, где объясняется диагностическая информация?
Ответы
Ответ 1
Я нахожу, что эти типы ошибок часто решаются самым быстрым способом с использованием метода "комментарий-от-до-у-у-у-у", чтобы изолировать конфигурацию компонента, которая вызывает сбой макета. Прокомментируйте дочерние компоненты изнутри, заменив их накладкой html config, пока вы не обнуляете, на каком компоненте возникла ошибка, а затем посмотрите, сколько вы можете вернуть, пока ошибка не вернется, и вы должны смотреть только несколько оставшихся строк конфигурации, которые вы можете наблюдать за документами/образцами.
Ответ 2
Я получал сообщения "Ошибка выполнения макета" в своем приложении и обнаружил, что проблема была вызвана тем, что забыла установить свойство макета внутри моего файла Viewport.js. Как только я определил макет там, все отлично работало хорошо.:)
Пример:
Ext.define('MyApp.view.Viewport',{
extend : 'Ext.container.Viewport',
layout : 'fit',
});
Ответ 3
Некоторые из причин можно отнести как -
- Overnesting (искать макеты внутри макета. Некоторые вложенные комбинации компоновки будут давать эту ошибку)
- В контейнере отсутствует макет.
- В контейнере или его дочерних элементах отсутствует информация о размерах. Для
пример высоты/ширины или гибкости.
- Используя ui config для компонента, который не определен в sass.
Чтобы отлаживать, мы должны исследовать макеты в представлениях, где генерируется исключение.
К сожалению, документации нет.
источник: поддержка Sencha