我在表单中有一个 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 检查器中,我可以看到选项看起来正确(对我来说)。我尝试将它们作为道具、计算值、映射状态传递——每次都是同样的问题。
如果我将选项换成在 data() 函数中定义的静态数组,它可以正常工作。任何人都可以确认我正确地实施了这一点吗?