连接v-select与vuex:问题[object object]
Connect v-select with vuex: problem [object object]
我正在尝试创建一个下拉列表(v-select/q-select(使用类星体)),它允许我从我的 vuex 存储中的数组 select,然后最终保存 selected 项目(它的内容)在一个变量中。目前我访问 vuex-storage 没有问题,但是面临 问题 ,即 v-select 需要一个字符串而不是一个对象。
我的代码如下所示。
// vuex storage:
const state = {
savedsystems:
[
id: "1",
system: {...}
],
[
id: "2",
system: {...}
]
// example of the vuex storage out of my viewdevtools
systemsconstant: Object
savedsystems:Array[2]
0:Object
id:"first"
system:Object
7a73d702-fc28-4d15-a54c-2bb950f7a51c:Object
name:"3"
status:"defined"
88519419-8a81-48f1-a5e6-5da77291b848:Object
name:"5"
status:"not defined"
1:Object
id:"second"
system:Object
7a73d702-fc28-4d15-a54c-2bb950f7a51c:Object
name:"3"
status:"not defined"
88519419-8a81-48f1-a5e6-5da77291b848:Object
name:"9"
status:"defined"
}
// dropdown:
<q-select
outlined
dense
emit-value
:value="currentsystem"
:options="savedsystems"
label="selectsystem" />
// computed to get systems from vuex:
computed: {
savedsystems() {
return this.$store.getters['systemsconstant/getsavedsystems']
}
},
我使用以下示例 https://codepen.io/sagalbot/pen/aJQJyp 作为灵感,并尝试了几种不同的字符串化设置,但实际上什么也没有。
如果有人尝试将我的案例应用于类似的问题 (),则提到的格式标签将是一个对象而不是字符串。
问题:
我如何修改(使用 getter)导入的对象数组“savedsystems”,以便它既可以用作 select 它的标签,又可以将它正确地连接到值,所以我可以将 selected 保存为变量。
或者我可以更改我的 v-select 中的某些内容,例如改变后面的内容:options/options?
如有任何帮助,我将不胜感激!
你应该使用 属性 option-label
<div id="q-app">
<div class="q-pa-md" style="max-width: 300px">
<div class="q-gutter-md">
<q-badge color="secondary" multi-line>
Model: "{{ model }}"
</q-badge>
<q-select filled v-model="model" :options="options" label="Standard" option-label="description"></q-select>
{{ model }}
</div>
</div>
</div>
JS:
new Vue({
el: '#q-app',
data () {
return {
model: null,
options: [
{
label: 'Google',
value: 'Google',
description: 'Search engine',
category: '1'
},
{
label: 'Facebook',
value: 'Facebook',
description: 'Social media',
category: '1'
},
{
label: 'Twitter',
value: 'Twitter',
description: 'Quick updates',
category: '2'
},
]
}
}
})
我正在尝试创建一个下拉列表(v-select/q-select(使用类星体)),它允许我从我的 vuex 存储中的数组 select,然后最终保存 selected 项目(它的内容)在一个变量中。目前我访问 vuex-storage 没有问题,但是面临 问题 ,即 v-select 需要一个字符串而不是一个对象。
我的代码如下所示。
// vuex storage:
const state = {
savedsystems:
[
id: "1",
system: {...}
],
[
id: "2",
system: {...}
]
// example of the vuex storage out of my viewdevtools
systemsconstant: Object
savedsystems:Array[2]
0:Object
id:"first"
system:Object
7a73d702-fc28-4d15-a54c-2bb950f7a51c:Object
name:"3"
status:"defined"
88519419-8a81-48f1-a5e6-5da77291b848:Object
name:"5"
status:"not defined"
1:Object
id:"second"
system:Object
7a73d702-fc28-4d15-a54c-2bb950f7a51c:Object
name:"3"
status:"not defined"
88519419-8a81-48f1-a5e6-5da77291b848:Object
name:"9"
status:"defined"
}
// dropdown:
<q-select
outlined
dense
emit-value
:value="currentsystem"
:options="savedsystems"
label="selectsystem" />
// computed to get systems from vuex:
computed: {
savedsystems() {
return this.$store.getters['systemsconstant/getsavedsystems']
}
},
我使用以下示例 https://codepen.io/sagalbot/pen/aJQJyp 作为灵感,并尝试了几种不同的字符串化设置,但实际上什么也没有。
如果有人尝试将我的案例应用于类似的问题 (
问题: 我如何修改(使用 getter)导入的对象数组“savedsystems”,以便它既可以用作 select 它的标签,又可以将它正确地连接到值,所以我可以将 selected 保存为变量。 或者我可以更改我的 v-select 中的某些内容,例如改变后面的内容:options/options?
如有任何帮助,我将不胜感激!
你应该使用 属性 option-label
<div id="q-app">
<div class="q-pa-md" style="max-width: 300px">
<div class="q-gutter-md">
<q-badge color="secondary" multi-line>
Model: "{{ model }}"
</q-badge>
<q-select filled v-model="model" :options="options" label="Standard" option-label="description"></q-select>
{{ model }}
</div>
</div>
</div>
JS:
new Vue({
el: '#q-app',
data () {
return {
model: null,
options: [
{
label: 'Google',
value: 'Google',
description: 'Search engine',
category: '1'
},
{
label: 'Facebook',
value: 'Facebook',
description: 'Social media',
category: '1'
},
{
label: 'Twitter',
value: 'Twitter',
description: 'Quick updates',
category: '2'
},
]
}
}
})