Canor
Canor

Reputation: 919

How to use vuex namespaced getters with arguments?

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?

Upvotes: 15

Views: 16538

Answers (3)

Nishan B
Nishan B

Reputation: 855

The easier way is to use name spaced getters:

computed(){
    ...mapGetters('feeders', ['getFeedersById'])
}

Upvotes: 2

gbragamonte
gbragamonte

Reputation: 125

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]);
  }
}

Upvotes: 3

Canor
Canor

Reputation: 919

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!! :)

Upvotes: 24

Related Questions