シンプルVueのを考えてみましょうブログ:
私は私のデータストアとしてVuexを使用してだと私は2つの設定する必要がありゲッター:getPost
取得するためのゲッターpost
IDでの、だけでなく、listFeaturedPosts
各機能のポストの最初の数文字を返します。注目の投稿リストのデータストアスキーマは、IDによって投稿を参照します。これらのIDは、抜粋を表示するために実際の投稿に解決する必要があります。
store / state.js
export const state = {
featuredPosts: [2, 0],
posts: [
'Lorem et ipsum dolor sit amet',
'Lorem et ipsum dolor sit amet',
'Lorem et ipsum dolor sit amet',
'Lorem et ipsum dolor sit amet',
'Lorem et ipsum dolor sit amet',
]
}
store / getters.js
export default getPost = (state) => (postID) => {
return state.posts[postID]
}
export default listFeaturedPosts = (state, getters) => () => {
console.log(getters) // {}
return state.featuredPosts.map(postID => getters.getPost(postID).substring(0, EXCERPT_LENGTH);
}
store / index.js
import Vue from 'vue'
import Vuex from 'vuex'
import state from './state'
import * as getters from './getters'
import * as mutations from './mutations'
Vue.use(Vuex)
export default new Vuex.Store({
state,
getters,
mutations
})
ドキュメントによると、このgetters
パラメーターは他のゲッターにアクセスするために使用できます。ただし、getters
内部からアクセスしようとするlistFeaturedPosts
と、空になりgetters.getPost
、そのコンテキストで定義されていないため、コンソールでエラーが発生します。
上記の例で、getPost
内部からVuexゲッターとして呼び出すにはどうすればよいlistFeaturedPosts
ですか?