14

I have issue when Im using vuex.

I have getters in namespaced module and I cant figurę out how to get the data with Ii when Im passing some arguments.

this.$store.getters.feeders.getFeedersById(id)

And in maper.

...mapGetters({
   feeders: ['feeders/getFeedersById'](this.id)

Getting error like this getter is not a function. What else shoudl I do?

Canor
  • 909
  • 1
  • 8
  • 25

3 Answers3

24
feedersById(state) {
    return rowId => {
        if (state.feedersArray.hasOwnProperty(rowId)) {
            return state.feedersArray[rowId].map(id => state.feeders[id]);
        }

    }
},

feedersId() {
  if (this.rowData) {
   return this.$store.getters['feeders/feedersById'](this.rowData.ac_id);
  }
}

Okey I had some mistake there and now it works properly. Thanks!! :)

Canor
  • 909
  • 1
  • 8
  • 25
3

You can also declare a getter function like this:

feedersById: (state) => rowID => {
  if (state.feedersArray.hasOwnProperty(rowId)) {
    return state.feedersArray[rowId].map(id => state.feeders[id]);
  }
}
1

The easier way is to use name spaced getters:

computed(){
    ...mapGetters('feeders', ['getFeedersById'])
}
Emma
  • 27,428
  • 11
  • 44
  • 69
Nishan B
  • 627
  • 7
  • 11