前提・実現したいこと
select
フォームの選択肢を複数のコンポーネントで共有したいため、コンポーネントのdata
内に直接持たせるのではなく、store
のstate
に保存し、そこからgetters
で引っ張りコンポーネントのdata
内に保存したいです。
エラーで止まってしまっているので、追加するコードがあればご教示いただけますでしょうか。
発生している問題・エラーメッセージ
[vuex] module namespace not found in mapGetters(): genreIds/
該当のソースコード
store/index.js
javascript
1import Vue from 'vue' 2import Vuex from 'vuex' 3 4Vue.use(Vuex) 5 6const state = { 7 genreIds: [ 8 { genreId: 100433, name: 'ルームウェア' }, 9 { genreId: 562637, name: '家電' }, 10 { genreId: 510915, name: '洋酒' }, 11 { genreId: 100804, name: 'インテリア' }, 12 { genreId: 215783, name: '日用品雑貨' }, 13 { genreId: 558944, name: 'キッチン用品・食器' }, 14 { genreId: 100005, name: '花' }, 15 { genreId: 566732, name: 'カタログ' }, 16 { genreId: 553283, name: 'ギフト券・商品券' }, 17 ], 18} 19 20const getters = { 21 genreIds: state => state.genreIds, 22} 23 24export default new Vuex.Store({ 25 namespaced: true, 26 state, 27 getters 28})
_form.vue
javascript
1<template> 2 <select class="select_box" v-model="genreId_selected" @change="CHANGE_GENRE_ID($event.target.value)"> 3 <option disabled value="" >ジャンルで選ぶ</option> 4 <option v-for="genreId in genreIds" :value="genreId.genreId" :key="genreId.id"> 5 {{ genreId.name }} 6 </option> 7 </select> 8</template> 9 10<script> 11import { mapGetters } from 'vuex' 12export default { 13 name: 'ApiCall', 14 data() { 15 return { 16 genreId_selected: '', 17 } 18 }, 19 computed: { 20 ...mapGetters("genreIds", ["genreIds"]) 21 }, 22</script>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。