在数组中传递数组

Passing Arrays within Arrays

我正在使用 React,这里是我传递组件的缩小的默认道具集:

getDefaultProps : function () {
    return (
    {
        toolbarAttr : [
            firstToolbar : [
                {
                    ctrlId : 'ctrlNewTem',
                    ctrlClass : 'ctrl',
                    ctrlDataAction : '',
                    ctrlDataTooltip : 'New Template'
                }       
            ],
            secondToolbar : [
                {
                    ctrlId : 'ctrlGrpSelect',
                    ctrlClass : 'ctrl',
                    ctrlDataAction : '',
                    ctrlDataTooltip : 'Select / Group Select'
                },
                {
                    ctrlId : 'ctrlDrawShapes',
                    ctrlClass : 'ctrl',
                    ctrlDataAction : '',
                    ctrlDataTooltip : 'Draw Shapes'
                }                   
            ],
            thirdToolbar : [
                {
                    ctrlId : 'ctrlZoomOut',
                    ctrlClass : 'ctrl',
                    ctrlDataAction : '',
                    ctrlDataTooltip : 'Zoom Out'
                },
                {
                    ctrlId : 'ctrlPan',
                    ctrlClass : 'ctrl',
                    ctrlDataAction : '',
                    ctrlDataTooltip : 'Pan'
                }                   
            ],
            fourthToolbar : [
                {
                    ctrlId : 'ctrlTemSide',
                    ctrlClass : 'ctrl',
                    ctrlDataAction : '',
                    ctrlDataTooltip : 'Front / Back Template'
                }
            ]
        ]
    });
},

简而言之,我有一个道具对象,它有一个数组,由很多子数组组成,在子数组中,我有对象。这被报告为 'syntax error',为什么?

另外,这是一个好的设计模式吗?将不胜感激。

谢谢

firstToolBar 不能直接进入 toolbarAttr 因为 toolbarAttr 是数组而不是对象。

让它成为一个对象

toolbarAttr : { //replace [ with {
  ... //all the other props here
} // replace ] with }

这将更具可读性:

getDefaultProps : function () {
     var toolbarAttr = [];
     var firstToolbar = [];
     firstToolBar.push('ctrlId', 'ctrlDrawShapes');
     ....
     toolBarAttr.push('firstToolBar', firstToolBar);
     return toolBarAttr;
}