Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Extjs 6 responsiveConfig找不到布局配置项的setter_Extjs_Responsive Design_Extjs5_Extjs6_Extjs6 Classic - Fatal编程技术网

Extjs 6 responsiveConfig找不到布局配置项的setter

Extjs 6 responsiveConfig找不到布局配置项的setter,extjs,responsive-design,extjs5,extjs6,extjs6-classic,Extjs,Responsive Design,Extjs5,Extjs6,Extjs6 Classic,我有 我的目标是使用边界布局,其中导航可以根据窗口大小在西部地区和北部地区之间更改,布局配置可以在垂直和水平之间切换,以便在西部地区时按钮垂直分组,在北部地区时按钮分组水平的 我知道默认情况下,在运行时无法更改布局类型,但我发现有用户指出,如果使用框布局类型(vbox和hbox的父项),则可以更新垂直配置以在运行时更改分组 我在上面链接的小提琴是我尝试将这个概念原型化 我遇到的问题是responsiveConfig找不到我试图更改的特定属性的setter,而且不仅仅是垂直配置。我知道的配置项有s

我有

我的目标是使用边界布局,其中导航可以根据窗口大小在西部地区和北部地区之间更改,布局配置可以在垂直和水平之间切换,以便在西部地区时按钮垂直分组,在北部地区时按钮分组水平的

我知道默认情况下,在运行时无法更改布局类型,但我发现有用户指出,如果使用
布局类型(vbox和hbox的父项),则可以更新
垂直
配置以在运行时更改分组

我在上面链接的小提琴是我尝试将这个概念原型化

我遇到的问题是responsiveConfig找不到我试图更改的特定属性的setter,而且不仅仅是垂直配置。我知道的配置项有setter,而且我以前在responsiveConfig中看到过它可以工作,但它也不能工作:

Ext.layout.container.Box肯定有一个setPack方法


我的配置有误吗?

错误是因为
自动
布局没有
包的设置器。
这告诉我布局确实是在运行时根据响应布局配置中指定的值设置的。由于没有定义,只有
垂直
包装
配置,布局类型被解释为
自动
。小提琴中的小变化,定义布局类型如下:

responsiveConfig:{
    wide:{
        layout:{
            type : 'vbox',
            pack:'start'
        },
        bodyStyle:{'background-color': 'orange'}
    },
    tall:{
        layout:{
            type : 'hbox',
            pack: 'center'
        },
        bodyStyle:{'background-color': 'purple'}
    }
},

您的错误已经消失。

当前不支持在运行时更改布局。此处有一个功能请求:

摆弄解决方法:

我在sencha论坛上的帖子中描述了我尝试的技术。回答这个问题的海报最初用一把显示正确实现的最新小提琴回答了我的帖子

我补充说

以下是所需的响应部分:

plugins: 'responsive',
responsiveConfig:{
    wide:{
        layout:{
            type: 'box',
            vertical: true,
            pack:'start'
        },
        region: 'west'
    },
    tall:{
        layout:{
            type: 'box',
            vertical: false,
            pack: 'center'
        },
        region: 'north'
    }
我认为这里要知道的重要部分(以及让我感到困惑的是什么)是,您必须在
responsiveConfig
属性的
layout
config中包含
type:'box'
,因为responsiveConfig没有为布局触发每个单独的setter(
type
vertical
pack
),它将触发整个
layout
setter方法。如果在提供布局配置的对象中不包含
type
配置,它将使用默认类型,即“自动”


这就是为什么我在原始帖子的屏幕截图中包含了javascript控制台中的错误消息,其中引用了
Ext.layout.container.Auto
而不是
Ext.layout.container.Box
。错误消息是正确的,没有
setPack
方法。

它确实抑制了错误,但没有实现f功能性;按钮不切换其分组类型。指出布局类型不能在运行时更改。这就是为什么我尝试这种方法来更改垂直属性,因为它可以在运行时设置。很酷,感谢你的提示:功能请求和解决方法。这在我的ca中不起作用se因为许多导航按钮将是非选项卡项,并且外观必须一致,所以选项卡面板不是选项:/太好了!谢谢分享。没问题。剔除和摸索是一种痛苦,如果不尽我所能解释它将是一种犯罪!你能接受另一个答案并接受y吗我们自己的?必须强调正确的解决方案:)我可以,但我必须等两天,因为我提交了答案