Vuex에 있는 다른 getter에서 getter를 어떻게 부르죠?
간단한 Vue 블로그를 생각해 보십시오.
Vuex를 데이터스토어로 사용하고 있으며 다음 두 가지 getter를 설정해야 합니다.getPost
취득을 위한 getterpost
아이디, 아이디,listFeaturedPosts
각 특집 투고의 처음 몇 글자를 반환합니다.특집 게시물 목록의 데이터스토어 스키마는 게시물을 ID별로 참조합니다.이러한 ID는 발췌를 표시하기 위해 실제 투고로 해결되어야 합니다.
스토어/스테이트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.discloss
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.displaces
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
파라미터를 사용하여 다른 getter에 액세스할 수 있습니다.단, 접속을 시도하면getters
안쪽에서listFeaturedPosts
이 파일은 비어 있으며 콘솔에는 다음 이유로 오류가 표시됩니다.getters.getPost
정의되어 있지 않습니다.
뭐라고 불러야 되지?getPost
내부로부터의 Vuex getter로서listFeaturedPosts
위의 예에서?
VueJ 2.0에서는 다음 두 가지 모두에 합격해야 합니다.state
그리고.getters
.
getters는 두 번째 인수로서 다른 getters에게 전달됩니다.
export default foo = (state, getters) => {
return getters.yourGetter
}
공식 문서: https://vuex.vuejs.org/guide/getters.html#property-style-access
통과하다getters
로컬 및 비네임 우선 getter에 액세스하는 두 번째 인수입니다.네임슬레이드 모듈의 경우rootGetters
(4번째 인수로 다른 모듈 내에서 정의된 getter에 액세스하려면 다음 절차를 수행합니다).
export default foo = (state, getters, rootState, rootGetters) => {
return getters.yourGetter === rootGetters['moduleName/getterName']
}
getters는 다른 getters를 두 번째 인수로 받습니다.
getters: {
doneTodos: state => {
return state.todos.filter(todo => todo.done)
},
doneTodosCount: (state, getters) => {
return getters.doneTodos.length
}
}
다음은 공식 문서 링크입니다. https://vuex.vuejs.org/guide/getters.html#property-style-access
테스트 없음state
효과가 없었어요그래서...state
필수입니다.
이 기능은 다음과 같습니다.
export default foo = (state, getters) => {
return getters.yourGetter
}
이것은 효과가 없었다
export default foo = (getters) => {
return getters.yourGetter
}
상태를 통과하는 대신 getters를 통과한 다음 원하는 getter를 호출합니다.도움이 됐으면 좋겠다.
고객님의 스토어/게터.js
export default foo = (getters) => {
return getters.anyGetterYouWant
}
언급URL : https://stackoverflow.com/questions/46210109/how-do-i-call-a-getter-from-another-getter-in-vuex
'programing' 카테고리의 다른 글
Vue Js: 범위 지정 슬롯 및 IE11 문제 (0) | 2022.08.28 |
---|---|
Axios 및 VueX에서 nuxtJ를 간단하게 사용 (0) | 2022.08.28 |
부엑스의 라라벨 포르티피요배열에서 문자열로 변환 오류입니다.요새화서비스 프로바이더php 행 40.무슨 일이야? (0) | 2022.08.28 |
Java Persistence API에서 FetchType LAGY와 OVER의 차이점은 무엇입니까? (0) | 2022.08.28 |
왼쪽 패드 인쇄(스페이스 포함) (0) | 2022.08.28 |