source

다른 구성 요소에 사용되는 Vuex 어레이를 변환하는 중

factcode 2022. 8. 27. 09:23
반응형

다른 구성 요소에 사용되는 Vuex 어레이를 변환하는 중

첫 번째 컴포넌트에는 VueX에 저장된 값을 사용하여 어레이를 변경하는 기능이 있습니다.

 methods: {
    //get a function that changes the pickedlist array that is stored in vuex store
    ...mapActions([ 
      'updatePickedDates'
      ]),
    ...mapGetters([
      'dates'
    ]),
    resetArray() {
      this.updatePickedDates(this.dates}
 }

다른 컴포넌트

이 어레이에 전달된 VueX의 getter를 사용합니다.

 computed: {
    ...mapGetters(["managementNews"])
  }

단, 이 경우resetArray()함수가 실행됨 오류 발생state.pickedDates.includes is not a function

내 VueX 스토어의 getters와 modio는 다음과 같습니다.

 mutations: {
    mutatePickedDates: (state, payload) => {
      state.pickedDates=payload
    }
  },
  actions: {
    updatePickedDates({commit}, payload) {
      commit('mutatePickedDates', payload)
    }
  },
  modules: {
  },
  getters : {
    //get news that are of type management
    managementNews: function(state) {
      return state.news.filter(i => i.type === "management" && state.pickedDates.includes(i.date));
    },
    dates: state => {
      return state.dates
    },
    pickedDates: state => {
      return state.pickedDates
    }
  },

이 경우this.dates는 함수이며 배열이 아닙니다.에러는 정의되어 있지 않지만, 정의되어 있지 않은 것을 나타냅니다.includes방법.

mapGetters는 계산된 속성에 대한 getter를 제공해야 합니다.그럴 리가 없다mapGetters에 적용할 수 있다methods만들어 내다this.dates배열이 됩니다.

다음 중 하나여야 합니다.

  methods: {
    ...mapActions([ 
      'updatePickedDates'
    ])
  },
  computed: {
    ...mapGetters([
      'dates'
    ]),
  }

언급URL : https://stackoverflow.com/questions/60207457/mutating-vuex-array-that-is-used-in-different-component

반응형