关于使用vue elementui分组下拉框动态配置其数据源失效的问题?

关于使用vue elementui分组下拉框动态配置其数据源失效的问题?
以下是我的下拉框代码:

select id="sel" v-model="sizes" placeholder="请选择">
            option-group v-for="group in sizes" :key="group.cofigname" :label="group.cofigname">
                option v-for="item in group.sku" :key="item.cofigname" :label="item.cofigname" :value="item.id">
                option>
            option-group>
        select>

数据源的生成代码:

beforeCreate() {
                $.getJSON("json/test1.json", function (data) {
                        var s = data.data.size;
                        var outdata = Array();
                        //格式化
                        for (let i = 0; i < s.length; i++) {
                            // let obj = [];
                            let obj = Array();
                            for(let j=0;jsku.length;j++){
                                let child = {
                                    label:s[i].sku[j].cofigname,
                                    value:s[i].sku[j].cofigname
                                }
                                obj.push(child);
                            }
                            let parent = {
                                label:s[i].cofigname,
                                options:obj
                            }
                            outdata.push(parent);
                        }
                        this.sizes = outdata;
                        console.log("sada",outdata);
                    })
            },

上文中sada控制台打印的outdata:

[
    {
        "label": "长度",
        "options": [
            {
                "label": "1m",
                "value": "1m"
            },
            {
                "label": "2m",
                "value": "2m"
            },
            {
                "label": "3m",
                "value": "3m"
            }
        ]
    },
    {
        "label": "颜色",
        "options": [
            {
                "label": "红",
                "value": "红"
            },
            {
                "label": "黄",
                "value": "黄"
            },
            {
                "label": "蓝",
                "value": "蓝"
            },
            {
                "label": "绿",
                "value": "绿"
            },
            {
                "label": "紫",
                "value": "紫"
            }
        ]
    }
]  

elementui文档中写的数据源格式:

[{
          label: '热门城市',
          options: [{
            value: 'Shanghai',
            label: '上海'
          }, {
            value: 'Beijing',
            label: '北京'
          }]
        }, {
          label: '城市名',
          options: [{
            value: 'Chengdu',
            label: '成都'
          }, {
            value: 'Shenzhen',
            label: '深圳'
          }, {
            value: 'Guangzhou',
            label: '广州'
          }, {
            value: 'Dalian',
            label: '大连'
          }]
        }]

运行之后的效果:

img

请问为何不能将数据渲染到下拉框之中?



<!--示例代码-->
<template>
 <el-select v-model="value" placeholder="请选择">
    <el-option-group
      v-for="group in sizes"
      :key="group.label"
      :label="group.label">
      <el-option
        v-for="item in group.options"
        :key="item.value"
        :label="item.label"
        :value="item.value">
      </el-option>
    </el-option-group>
  </el-select>
</template>
<script>
export default {
  data() {
    return {
     sizes:[],
      value: ''
    };
  },
  created(){
  },
  mounted() { 
  },
  beforeCreate() {
    this.$nextTick(() => {
    this.sizes=[
    {
        label: "长度",
        options: [
            {
                label: "1m",
                value: "1m"
            },
            {
                label: "2m",
                value: "2m"
            },
            {
                label: "3m",
                value: "3m"
            }
        ]
    },
    {
        label: "颜色",
        options: [
            {
                label: "红",
                value: "红"
            },
            {
                label: "黄",
                value: "黄"
            },
            {
                label: "蓝",
                value: "蓝"
            },
            {
                label: "绿",
                value: "绿"
            },
            {
                label: "紫",
                value: "紫"
            }
        ]
    }
    ]  
    })
  },
  methods: {
    },
  }

</script>

不想用下面这样异步的话,就把赋值放到created里面

this.$nextTick

img

beforeCreate改成created试试,怀疑beforeCreate时,data里的数据还不能使用

v-model的值为当前被选中的el-option的 value 属性值,你把v-model的值写成数据源了