1

vuex を使用して自分の API からコンポーネントに配列をプルしようとしていますが、途方に暮れており、おそらくこれを試みることに頭を悩ませています。コンポーネントから直接アクセスされるAPIを使用して、次のように設定しましたが、問題ありませんでした。

data () {
 return {
  catalog:[],
 }
},
created() {
 this.$http.get('https://example.net/api.json').then(data => {
  this.catalog = data.body[0].threads;
 })
}

参考までに、json は次のようになります。

[{
"threads": [{
 "no: 12345,
 "comment": "comment here",
 "name": "user"
}, {
 "no: 67890,
 "comment": "another comment here",
 "name": "user2"
}],

//this goes on for about 15 objects more in the array

 "page": 0
}]

これをすべてストアに移動すると、実際にこれを機能させる方法がわかりません。vue-resource で vuex を使用したことはありません。

//store.js

state: {
    catalog: []
},
actions: {
    getCatalog({commit}){
        Vue.http.get('https://example.net/api.json').then(response => {
            commit('LOAD_CATALOG', response.data.data)
        });
    }
},
mutations: {
    LOAD_CATALOG (state) {
        state.catalog.push(state.catalog)
    }
},
getters: {
    catalog: state => state.catalog,
}

//component.vue

created () {
    this.$store.dispatch('getCatalog')
},
computed: {
    catalog () {
        return this.$store.getters.catalog
    }
}

これが間違っていることは承知しており、最大コール スタック サイズ エラーが発生しています。this.catalog = data.body[0].threads;すべてを保管した場合、上記の例 ( ) と同じ結果を得るにはどうすればよいですか?

説明が必要な場合はお知らせください。私はまだ Vue 2.0 を使い始めたばかりです。

4

1 に答える 1