首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue-Multiselect和Vuex:具有存储预选值

Vue-Multiselect和Vuex:具有存储预选值
EN

Stack Overflow用户
提问于 2019-06-12 15:35:16
回答 2查看 1.7K关注 0票数 2

想象一下Vuejs- Vuex的应用程序。我想要一个多选择的下拉列表。Vue组件中的基本示例:

代码语言:javascript
复制
<template>
  <div>
    <multiselect
      v-model="values"
      :options="options">
    </multiselect>
  </div>
</template>

<script>
  import Multiselect from 'vue-multiselect'
  export default {
    components: { Multiselect },
    data () {
      return {
        values: null,
        options: ['bar', 'foo', 'hello','test']
      }
    }
  }
</script>

<style src="vue-multiselect/dist/vue-multiselect.min.css"></style>

现在,如果我在这样的数据中初始化“值”:

代码语言:javascript
复制
values: ["test"]

多重选择下拉列表中已经选择了"test“选项。我也可以取消选择点击,并再次选择它,因为它在选项中。

如果我试图像这样初始化我的值:

代码语言:javascript
复制
values:[this.$store.state.variableIwantPreselected]

它不能完全发挥作用。在“选择区域/下拉搜索”字段中,通常会显示具有所选项目名称的绿色框。对我来说,它没有在绿色框( this.$store.state.variableIwantPreselected,中的)中显示字符串,而只显示一个小的绿色框,里面没有写任何东西。

我想我错过了一些关于Vuex和生命周期挂钩的东西,但是我不知道是什么。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-12 16:00:26

如果您使用Vuex (在存储使用状态下操作数据的最佳方法),

获取任何类型数据的突变、操作和获取器。有关更多信息,请查看这个职位

票数 1
EN

Stack Overflow用户

发布于 2019-06-13 09:21:22

对于遇到类似问题的人员,还有一个注意事项:检查组件何时呈现/加载。在我的例子中,它是在存储中的值被更改之前加载的(当您使用vue-路由器并且只有一个路由显示多个组件时,往往会发生这种情况)。

解决方案:深入了解更新的生命周期挂钩。

我现在在更新的生命周期挂钩中调用一个函数。函数是在方法中声明的。函数检查我的值(现在初始化为空列表)是否长度为0。如果是,则将存储值推送到列表中。

在数据方面:

代码语言:javascript
复制
values: []

在方法上:

代码语言:javascript
复制
checkValues (){
    if(this.values.length === 0){
        this.values.push(this.$store.state.variableIwantPreselected)
    }
}

在更新()中:

代码语言:javascript
复制
this.checkValues()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56565835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档