Объект (…) не является функцией для хранилища Vuex

#javascript #vue.js #vuex

#javascript #vue.js #vuex

Вопрос:

Я нахожусь в Vue 3, я начал с добавления нового Vuex.Store в vue, но я постоянно получаю эту ошибку javascript. Я также попробовал то же самое с createStore, поскольку я использую Vue 3, но это все то же самое.

Чего мне не хватает?

 const store = new Vuex.Store({
    modules: {
    account: {
    namespaced: true,
    state: () => ({  }), 
    getters: {
        isAdmin () {  } 
    },
    actions: {
        login () {  } 
    },
    mutations: {
        login () {  } 
    }
 }}
});  
  

Чем я добавляю в Vue как хранилище:

 new Vue({
    router,
    store,
    render: h => h(App),
}).$mount('#app');
  

Чего мне не хватает?

Полная ошибка

 vuex.esm-browser.js?5502:644 Uncaught TypeError: Object(...) is not a function
at resetStoreState (vuex.esm-browser.js?5502:644)
at new Store (vuex.esm-browser.js?5502:387)
at createStore (vuex.esm-browser.js?5502:337)
at eval (main.js?56d7:37)
at Module../src/main.js (app.js:1105)
at __webpack_require__ (app.js:849)
at fn (app.js:151)
at Object.1 (app.js:1118)
at __webpack_require__ (app.js:849)
at checkDeferredModules (app.js:46)
  

Комментарии:

1. Можете ли вы опубликовать полную ошибку с помощью трассировки стека?

2. Я добавил полную ошибку.

Ответ №1:

Если вы используете Vue 3, вам нужно использовать Vuex 4.

 import { createStore } from 'vuex'
import { createApp } from 'vue'

const store = createStore({
  state () {
    return {
      count: 1
    }
  }
})

const app = createApp({ /* your root component */ })
app.use(store)
  

https://vuex.vuejs.org/guide/#vuex-4-x-for-vue-3

Комментарии:

1. Хорошо, я установил все из stretch и работал, как вы сказали. Но, к сожалению, у меня возникла проблема с загрузкой с Vue 3, поэтому я решил продолжить с Vue 2.

Ответ №2:

 npm uninstall vuex
npm install vuex@3.4.0
//  Convert version to 3.4.0 Can perfectly solve this problem