Considera un semplice blog Vue:
sto usando Vuex come datastore e ho bisogno di impostare due getter : un getPostgetter per il recupero di un postID, così come un listFeaturedPostsche 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 gettersparametro può essere utilizzato per accedere ad altri getter. Tuttavia, quando provo ad accedere gettersdall'interno listFeaturedPosts, è vuoto e ricevo un errore nella console perché getters.getPostnon è definito in quel contesto.
Come posso chiamare getPostcome getter Vuex dall'interno listFeaturedPostsnell'esempio sopra?