programing

구성 요소 소품을 map에 전달할 수 있습니까?Getters vuex

copysource 2023. 1. 14. 10:40
반응형

구성 요소 소품을 map에 전달할 수 있습니까?Getters vuex

범용 입력 vue 컴포넌트를 만들기 시작했습니다.입력 데이터 변경에 대해 걱정하기 전에 상점에서 초기값을 받고 싶었습니다.

이런 게 있어요.

<template lang="html">
  <input class="input-text" type="text" name="" :value="value">
</template>

<script>
import store from '@/store/index';

export default {
  name: 'InputText',
  props: [
    'dataModel',
    'propertyName',
  ],
  computed: {
    value() {
      return store.state[this.dataModel][this.propertyName];
    },
  },
};
</script>

이거 되는구나.대신value에서 기능하다.computed나는 이 모든 것을 활용하고 싶었습니다.mapGetters그래서 대신 이런 걸 해봤어요.

...mapGetters({
  value: `${this.dataModel}/${this.propertyName}`,
}),

후자를 시도하자 마자 나는 받았다.undefined양쪽의 가치관에 대해서this.dataModel그리고.this.propertyName의 컨텍스트this호출 시 변경mapGetters새로운 물체에 있었으니까요컴포넌트 소품을 전달하여mapGetters의 콘텍스트를 설정하는 방법이 있습니까?this오브젝트 인수가 아닌 컴포넌트가 될 수 있을까요?아니면 원래 접근법/다른 접근법이 이 문제에 대처하는 올바른 방법이었습니까?

첫째, 스토어를 컴포넌트로 Import하지 마십시오.스토어는 다음과 같이 제공됩니다.this.$store, 삭제:

import store from '@/store/index';

사용할 수 없습니다.this사용하려는 컨텍스트에 아직 존재하지 않기 때문에 mapGetters에 있는 것과 같습니다.컴포넌트는 속성을 설정할 때 라이프 사이클의 초기 단계입니다.제가 알기론 미리 이름을 정해야 해요.

언급URL : https://stackoverflow.com/questions/48631445/can-you-pass-component-props-to-mapgetters-vuex

반응형