direct-vuex icon indicating copy to clipboard operation
direct-vuex copied to clipboard

Uncaught Error: [vuex] must call Vue.use(Vuex) before creating a store instance.

Open Sunhat opened this issue 4 years ago • 1 comments

I'm getting the error:

Uncaught Error: [vuex] must call Vue.use(Vuex) before creating a store instance.

Here's my thoughts: Perhaps direct-vuex has its own VueX installation?

Here's what fixes my problem:

myproject/src/main.ts

import Vue from 'vue'

const { store, rootActionContext, moduleActionContext } = createDirectStore(
  (vuex: any) => Vue.use(vuex), 
  {
      ...
  }
)

direct-vuex.esm.js

import Vuex from 'vuex'

function createDirectStore(callback, options) {
    callback(Vuex)

Here's my code:

myproject/src/main.ts

import Vue from 'vue'
import { createDirectStore } from 'direct-vuex'
import vuex from 'vuex'
import tabs from '@/store/modules/tabs'
import favourites from '@/store/modules/favourites'
import VuexPersistence from 'vuex-persist'

Vue.use(vuex)

const vuexLocal = new VuexPersistence<any>({
  storage: window.localStorage,
  reducer: state => ({ favourites: state.favourites }),
})

const { store, rootActionContext, moduleActionContext } = createDirectStore({
  modules: {
    tabs,
    favourites,
  },
  plugins: [vuexLocal.plugin],
} as any)

Sunhat avatar Mar 07 '20 13:03 Sunhat

I tried yours and see no problem. Could you share the minimum reproducible one?

thanhchungbtc avatar Mar 16 '20 02:03 thanhchungbtc