Javascript 如何通过v-for将axios数据放入v-select?

Javascript 如何通过v-for将axios数据放入v-select?,javascript,vue.js,axios,Javascript,Vue.js,Axios,我使用axios获取多行数据, 然后我想把数据放在v-select中,以便其他人可以选择, 我想用v-for让他一行一行地打印出来。 但结果显示没有可用的数据 我的代码 <template> <div> <v-select :item="desserts.name"></v-select> </div> </template> <script> export default { data:

我使用axios获取多行数据, 然后我想把数据放在v-select中,以便其他人可以选择, 我想用v-for让他一行一行地打印出来。 但结果显示没有可用的数据

我的代码

<template>
  <div>
     <v-select :item="desserts.name"></v-select>
  </div>
</template>

<script>
export default {
  data: () => ({
    desserts: [
      {
        id: "",
        name: ""
      }
    ]
  }),
  created() {
    this.getprotifile();
  },
  methods: {
    getprotifile() {
      this.axios
        .get("/api/admin/categories")
        .then(res => {
          //console.table(res.data);
          this.desserts = res.data;
          //console.log(this.desserts);
        })
        .catch(error => {
          console.error(error);
        })
        .finally(() => {});
    }
  }
};
</script>

导出默认值{
数据:()=>({
甜点:[
{
id:“”,
姓名:“
}
]
}),
创建(){
这个.getprotifile();
},
方法:{
getprotifile(){
这是axios
.get(“/api/admin/categories”)
。然后(res=>{
//控制台表(res.data);
this.desserts=res.data;
//console.log(这个是甜点);
})
.catch(错误=>{
控制台错误(error);
})
.最后(()=>{});
}
}
};

甜点
是一个数组,因此它没有模板中写入的
名称
属性

大概
就可以了


请查看官方vuetify文档,了解哪些道具传递给
v-select
,以使其正常工作:

如果这是针对
的vuetify v-select组件:items=“deserts”
(注意项目的复数形式),则需要一组对象,如

deserts: [
    {text: "The name", value:"the ID"},
    ...
]
或者您可以使用指令

item-text="name"
item-value="id"
然后,您的:items对象可以看起来像

[{"id": 1,"name": "aaa"}, {"id": 4,"name": "bbb"}, {"id": 5,"name": "ccc"}, {"id": 9,"name": "ddd"}]
如果需要将数据从服务器映射到正确的格式,可以使用map方法

this.selectOptions = resp.data.options.map(options => ({value: option.id, text: option.name}));

我想这个可以解决这个问题:

<v-select :item="desserts.filter(item => item.name)"></v-select>

我有两组数据,我希望人们选择数据的名称[{“id”:1,“name”:“aaa”},{“id”:4,“name”:“bbb”},{“id”:5,“name”:“ccc”},{“id”:9,“name”:“ddd”}]