Considera un semplice blog Vue:
sto usando Vuex come datastore e ho bisogno di impostare due getter : un getPost
getter per il recupero di un post
ID, così come un listFeaturedPosts
che restituisce i primi pochi caratteri di ogni post in primo piano. Lo schema del datastore per l'elenco dei post in primo piano fa riferimento ai post in base al loro ID. Questi ID devono essere risolti in post effettivi allo scopo di mostrare gli estratti.
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
})
Secondo la documentazione, il getters
parametro può essere utilizzato per accedere ad altri getter. Tuttavia, quando provo ad accedere getters
dall'interno listFeaturedPosts
, è vuoto e ricevo un errore nella console perché getters.getPost
non è definito in quel contesto.
Come posso chiamare getPost
come getter Vuex dall'interno listFeaturedPosts
nell'esempio sopra?