programing

Vuex에 있는 다른 getter에서 getter를 어떻게 부르죠?

bestcode 2022. 8. 28. 09:40
반응형

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

반응형