Сбой запуска макета

У меня возникает ошибка запуска макета всякий раз, когда я пытаюсь установить переопределение типа макета, и я не уверен, что это вызывает.

У меня есть родительское представление с вкладкой в ​​качестве дочернего элемента:

Ext.define('InventoryDemo.view.main.Main', {
    extend: 'Ext.panel.Panel',
    xtype: 'app-main',

    requires: [
        'Ext.plugin.Viewport',
        'InventoryDemo.view.brand.Brand'
    ],

    title: '<h1>Inventory Demo</h1>',
    layout: 'border',

    items:[
        {
            ...
        },
        // This is the tab panel that I'm trying to add the container class to
        {
            xtype: 'tabpanel',
            title: 'Inventories',
            header: false,
            region: 'center',
            reference: 'inventoryTabSet'
        }
    ]
});

И это представление, которое я пытаюсь добавить в качестве вкладки на панель вкладок:

Ext.define("InventoryDemo.view.inventory.list.Inventory",{
    extend: "Ext.container.Container",
    xtype: 'inventory',

    ...

    closable: true,
    layout:{
        type: 'hbox',
        align: 'stretch'
    },
    items:[
        {
            xtype: 'grid',
            bind:{
                store: '{inventory}'
            },

            listeners:{
                itemclick: 'showDetails'
            },

            columns:[
                { text: 'Name', dataIndex: 'name', flex: 1 },
                { text: 'Price', dataIndex: 'price' },
                { text: 'Active', dataIndex: 'active' },
            ]
        }
    ]
});

Это работает, если я не включаю конфигурацию макета:

    layout:{
        type: 'hbox',
        align: 'stretch'
    },

Если это пропустить, представление загружается без проблем, но когда я включаю тип hbox, я получаю ошибку запуска.

Я попытался просмотреть стек вызовов, но, честно говоря, я все еще слишком зеленый для сенчи, чтобы увидеть, что вызывает ошибку:

[E] Запуск макета failedlog @ ext-all-rtl-debug.js?_dc=1444523987794:8732logx @ ext-all-rtl-debug.js?_dc=1444523987794:8768Ext.apply.log.log.error @ ext-all -rtl-debug.js?_dc=1444523987794:8771Ext.define.handleFailure @ ext-all-rtl-debug.js?_dc=1444523987794:214144Ext.define.runComplete @ ext-all-rtl-debug.js?_dc=144452398779 :214616callOverrideParent @ ext-all-rtl-debug.js?_dc=1444523987794:1348Ext.Base.Base.addMembers.callParent @ ext-all-rtl-debug.js?_dc=1444523987794:11711Ext.override.runComplete @ ext-all -rtl-debug.js?_dc=1444523987794:61413Ext.define.run @ ext-all-rtl-debug.js?_dc=1444523987794:214610Ext.define.statics.flushLayouts @ ext-all-rtl-debug.js?_dc =1444523987794:61421Ext.define.statics.resumeLayouts @ ext-all-rtl-debug.js?_dc=1444523987794:61436Ext.resumeLayouts @ ext-all-rtl-debug.js?_dc=1444523987794:66954Ext.extify @extine.not. -all-rtl-debug.js?_dc=1444523987794:92658Ext.define.onTick @ ext-all-rtl-debug.js?_dc=1444523987794:92677(анонимная функция) @ ext-all-rtl-debug. js?_dc=1444523987794:6416(анонимная функция) @ ext-all-rtl-debug.js?_dc=1444523987794:6606 3ext-all-rtl-debug.js?_dc=1444523987794:8732 [E] Запуск макета failedlog @ ext -all-rtl-debug.js?_dc=1444523987794:8732logx @ ext-all-rtl-debug.js?_dc=1444523987794:8768Ext.apply.log.log.error @ ext-all-rtl-debug.js?_dc =1444523987794:8771Ext.define.handleFailure @ ext-all-rtl-debug.js?_dc=1444523987794:214144Ext.define.runComplete @ ext-all-rtl-debug.js?_dc=1444523987794:214616call ext-allPart-allPart-allOverride -debug.js?_dc=1444523987794:1348Ext.Base.Base.addMembers.callParent @ ext-all-rtl-debug.js?_dc=1444523987794:11711Ext.override.runComplete @ ext-all-rtl-debug.js?_dc =1444523987794:61413Ext.define.run @ ext-all-rtl-debug.js?_dc=1444523987794:214610Ext.define.statics.flushLayouts @ ext-all-rtl-debug.js?_dc=1444523987794:61421Ext.define .resumeLayouts @ ext-all-rtl-debug.js?_dc=1444523987794:61436Ext.resumeLayouts @ ext-all-rtl-debug.js?_dc=1444523987794:66954privates.statics.notify @ ext- all-rtl-debug.js?_dc=1444523987794:116731privates.statics.onTimer @ ext-all-rtl-debug.js?_dc=1444523987794:116750Ext.Function.fireHandlers @ ext-all-rtl-debug.js?_dc= 1444523987794:6303

Есть ли что-то в том, как я настроил представления, что может привести к сбою при попытке использовать любой тип макета, отличный от используемого по умолчанию?


person Chris Schmitz    schedule 11.10.2015    source источник
comment
Подумайте, почему вы используете hbox layout. Когда у вас есть только один элемент, hbox в этом нет необходимости. По умолчанию layout: fit, я думаю, этого будет достаточно, чтобы максимально растянуть сетку. Но да, если требуется hbox, ответ @Navaneeth-Kesavan правильный.   -  person Tarabass    schedule 11.10.2015
comment
Вышесказанное прямо в точку. Зачем вам использовать макет коробки?   -  person Evan Trimboli    schedule 11.10.2015
comment
Я использую hbox здесь, потому что, когда вы щелкаете строку в сетке, я добавляю панель подробной формы справа с загруженной выбранной записью.   -  person Chris Schmitz    schedule 12.10.2015


Ответы (1)


Когда макет контейнера имеет значение hbox, ожидается, что дочерние элементы этого контейнера будут иметь flex или width. Если вы укажете flex или width для grid, вы не столкнетесь с ошибкой запуска макета.

Вот вам скрипка: https://fiddle.sencha.com/#fiddle/v9a

person Navaneeth-Kesavan    schedule 11.10.2015
comment
также, когда сетка находится внутри панели с макетом, установленным на vbox, необходимо установить ее ширину. - person nix86; 28.02.2019