programing

템플릿에 있는 경우 "함수가 아니므로" 스토어의 Vue에 대한 getter에 액세스할 수 없습니다.

newsource 2022. 8. 14. 12:15

템플릿에 있는 경우 "함수가 아니므로" 스토어의 Vue에 대한 getter에 액세스할 수 없습니다.

vue와 vuex는 처음이고 Nuxt도 사용하고 있습니다.API(vuex)에서 가져온 데이터를 검색하는 기능을 템플릿에 사용하고 싶습니다.내가 왜 항상 이런 짓을 하는지 이해할 수 없다.

state.allHandhelds.values.findIndex is not a function

템플릿은 다음과 같습니다.

<div>{{ handheldID("Form Factor") }}</div>

제 계산에서는 함수를 다음과 같이 부릅니다.

 computed: {
    ...mapGetters(["allHandhelds"]),
    handheldID(merkmal) {
      return this.$store.getters.indexFinder(merkmal);
    },
  },

vuex에서는 getter로 정의되어 있습니다.

export const getters = {
   indexFinder(state, merkmal) {
    return state.allHandhelds.values.findIndex(
      (el) => el === merkmal
    ); /* Index des Merkmals finden */
  },
};

내가 뭘 잘못했는지 알아?

다음과 같은 접근 방식을 사용해야 합니다.

export const getters = {

 indexFinder: (state) => (merkmal) => {
      return state.allHandhelds.values.findIndex(
         (el) => el === merkmal
    ); 
  }
};

또는 구문을 사용합니다.

export const getters = {
   indexFinder(state) {
    return (merkmal)=> {
       return state.allHandhelds.values.findIndex(
      (el) => el === merkmal
    ); /* Index des Merkmals finden */
   }  
},
};

언급URL : https://stackoverflow.com/questions/70338759/cant-access-getters-in-the-store-for-vue-when-in-a-template-because-it-is-not