Method to check if item is saved within the Nuxt Store

Viewed 13

I currently have a Store that has the "Saved" items from a feed for a user. I'm trying to figure out the best/efficient way to check if the item is already saved within the store.

I can't think of any other way than grabbing the entire store's contents in each feed item and checking whether the id exists? Surely there's a better way?

FeedItem.vue

  methods: {
    savePost(Post) {
        this.$store.commit('savedPosts/addItem', Post)
    },
    deletePost(Post) {
        this.$store.commit('savedPosts/removeItem', Post)
    }
  }

Store

export const state = () => ({
  items: [
  ],
})

export const mutations = {

  updateItemsOnLoad(state, array) {
    var oldItems = state.items
    var newItems = array.flat()
    var joinedItems = newItems.concat(oldItems);
    state.items = joinedItems.flat()
  },

  addItem(state, item) {
    state.items.push(item)
    this.$warehouse.set('savedPosts', state.items)
  },

  removeItem(state, item) {
    var index = state.items.findIndex(c => c.id == item.id);
    state.items.splice(index, 1);
    this.$warehouse.set('savedPosts', state.items)
  },

}

So my main question: Is there a more efficient way to check whether a post exists within the items array without querying it on every feed item?

0 Answers
Related