我的vue-multiselect选项有什么问题?

时间:2019-11-01 11:45:02

标签: vue.js vuex vue-multiselect

我在表单中有一个vue-multiselect组件,并且控制台报告我的选项未定义,即使我看不到它们也没有。我的选项是从后端获取的,并且在创建此组件之前就已放入商店中。

控制台错误是

Invalid prop: type check failed for prop "options". Expected Array, got Undefined

这是我的组成部分

<template>
  <form action="#" @submit.prevent>
    <section>
      <div class="container">
        <h2 class="subtitle">Details</h2>

        <b-field label="Role" horizontal>
          <multiselect
            :options="roleOptions"
            track-by="id"
            label="title"
            :multiple="true"
            :close-on-select="false"
            :clear-on-select="false"
          ></multiselect>
        </b-field>
      </div>
    </section>
  </form>
</template>

<script>
import Multiselect from "vue-multiselect";
import { mapState, mapActions } from "vuex";
export default {
  name: "ProcessDetailsComponent",
  components: {
    multiselect: Multiselect
  },
  computed: {
    roleOptions() {
      return this.$store.state.processes.formData.process_roles;
    }
  },
};
</script>

<style scoped>
</style>

在开发人员工具Vue检查器中,我可以看到这些选项看起来正确。我尝试将它们作为道具,计算值,映射状态传递给我-每次都遇到相同的问题。

enter image description here

如果我将选项换成data()函数中定义的静态数组,则可以正常工作。谁能确认我在正确实施此操作?

1 个答案:

答案 0 :(得分:0)

:options =“ roleOptions”需要一个数组。确保vue变量是数组,而不是如上所述的对象或未定义等。

 data(){
        return{
            roleOptions:[],
          }
       }