Hãy xem xét một đơn giản Vue viết blog:
Tôi đang sử dụng Vuex như kho dữ liệu của tôi và tôi cần phải thiết lập hai thu khí : một getPostgetter để lấy một postbằng ID, cũng như một listFeaturedPostsrằng lợi nhuận vài ký tự đầu tiên của mỗi bài đặc trưng. Lược đồ kho dữ liệu cho danh sách bài đăng nổi bật tham chiếu đến các bài đăng theo ID của chúng. Các ID này cần được giải quyết thành các bài đăng thực tế nhằm mục đích hiển thị các đoạn trích.
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
})
Theo tài liệu, getterstham số có thể được sử dụng để truy cập các getters khác. Tuy nhiên, khi tôi cố gắng truy cập getterstừ bên trong listFeaturedPosts, nó trống rỗng và tôi gặp lỗi trong bảng điều khiển do getters.getPostkhông được xác định trong ngữ cảnh đó.
Làm cách nào để gọi getPostdưới dạng một bộ thu Vuex từ bên trong listFeaturedPoststrong ví dụ trên?