Considere un simple Vue blog:
Estoy usando Vuex como mi almacén de datos y necesito configurar dos captadores : un getPostcaptador para recuperar una postpor ID, así como listFeaturedPostsque los rendimientos de los primeros caracteres de cada puesto ofrecido. El esquema del almacén de datos para la lista de publicaciones destacadas hace referencia a las publicaciones por sus ID. Estas identificaciones deben resolverse en publicaciones reales con el fin de mostrar los extractos.
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
})
Según la documentación, el gettersparámetro se puede utilizar para acceder a otros captadores. Sin embargo, cuando intento acceder gettersdesde adentro listFeaturedPosts, está vacío y aparece un error en la consola debido a getters.getPostque no está definido en ese contexto.
¿Cómo llamo getPostcomo getter de Vuex desde adentro listFeaturedPostsen el ejemplo anterior?

Probé sin
statey no funcionó. Por esostatees necesario.esto funciona:
esto no funcionó
fuente
stateobjetogetterse ignorando el segundo argumento, que sería elgettersobjeto real . Sigettershiciera una introspección en este ejemplo, vería que en realidad era su objeto de estado.Los getters reciben otros getters como segundo argumento
Aquí hay un enlace a los documentos oficiales: https://vuex.vuejs.org/guide/getters.html#property-style-access
fuente
en lugar de pasar del estado , pasar captadores y luego llamar a cualquier otro comprador desea. Espero eso ayude.
En tu tienda / getters.js
fuente
export default foo = ({ getters }) => { return getters.anyGetterYouWant }