MitsuhaKitsune / vuex-webextensions

A Vuex plugin to share store through webextensions components
MIT License
83 stars 30 forks source link

Calling a vuex action in popup.js causing an infinite loop with a wrong commit payload #41

Open guyschlider opened 3 years ago

guyschlider commented 3 years ago

Hey,

I'm trying to use this plugin in a chrome extension with a simple store:

import Vue from 'vue'
import Vuex from 'vuex'
import VuexWebExtensions from 'vuex-webextensions';

Vue.use(Vuex)

const SET_IS_ENABLED = 'SET_IS_ENABLED'

export default new Vuex.Store({
  state: {
    isEnabled: false,
  },
  mutations: {
    [SET_IS_ENABLED] (state, newV) {
      console.log('SET_IS_ENABLED with:', newV)
      state.isEnabled = newV
    }
  },
  actions: {
    updateEnabledState ({ commit }, newV) {
      console.log('updateEnabledState with: ', newV)
      commit(SET_IS_ENABLED, newV)
    }
  },
  getters: {
    isEnabled: (state) => state.isEnabled
  },
  modules: {
  },
  plugins: [VuexWebExtensions()]
})

When calling updateEnabledState I see an infinite loop: https://i.imgur.com/DugX402.png

Using: vue@2.6.12 vuex@3.6.0 vuex-webextensions@1.3.0

guyschlider commented 3 years ago

Is this related to the syncActions? when setting to false - looks like its working?

MitsuhaKitsune commented 3 years ago

Recently I found this bug on the new Vuex-v4 branch, I gona investigate it and notice you here when it get fixed on npm