【问题标题】:Connect v-select with vuex: problem [object object]将 v-select 与 vuex 连接:问题 [object object]
【发布时间】:2020-08-26 12:59:32
【问题描述】:

我正在尝试创建一个下拉列表(v-select/q-select(使用类星体)),它允许我从我的 vuex-storage 中的一个数组中进行选择,然后最终将所选项目(它的内容)保存在一个变量。目前我访问 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 作为灵感,并尝试了几种不同的设置字符串化,但实际上没有任何结果。

如果有人尝试将我的案例应用于类似问题 (v-select displays object Object),则提到的格式标签将是一个对象而不是字符串。

问题: 如何修改(使用吸气剂)导入的对象数组“savedsystems”,这样它既可以用作标签来选择它,也可以将它正确连接到值,这样我就可以将选定的对象保存为变量。 或者我可以在我的 v-select 中更改一些内容,例如改变后面的内容:options/options?

如果有任何帮助,我将不胜感激!

【问题讨论】:

  • 从您的描述来看,问题并不清楚。我需要选择代码以及保存系统的示例数据。
  • @KuldipShelke 我为以后可能的读者更改了它。谢谢库尔迪普!

标签: vue.js vuex quasar v-select


【解决方案1】:

您应该使用属性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'
        },
      ]
    }
  }
})

https://codepen.io/reijnemans/pen/bGpqJYx?editors=1010

【讨论】:

  • 太棒了,非常感谢!那解决了它。现在我将在此基础上将其写入一个新变量中。
猜你喜欢
  • 2020-08-29
  • 2022-06-17
  • 1970-01-01
  • 1970-01-01
  • 2020-09-18
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多