【问题标题】:Vue.use() is throwing "Cannot read property 'use' of undefined"Vue.use() 抛出“无法读取未定义的属性‘使用’”
【发布时间】:2021-03-27 08:49:03
【问题描述】:

尝试 1

main.js

import { createApp } from 'vue'
import { store } from './store/store'
import App from './App.vue'

Vue.config.productionTip = false

const app = createApp(App)

app.use(store)

app.mount('#app')

store.js

import Vuex from 'vuex'
import Vue from 'vue'

Vue.use(Vuex)

export const store = new Vuex.Store({
  state: {
    patients: []
  }
});

尝试 1 错误

Uncaught TypeError: Cannot read property 'use' of undefined
    at eval (store.js?07a4:4)
    at Module../src/store/store.js (app.js:1342)

尝试 2

main.js

import { createApp } from 'vue'
import { store } from './store/store'
import App from './App.vue'

Vue.config.productionTip = false

const app = createApp(App)

app.use(store)

app.mount('#app')

store.js

import Vuex from 'vuex'
import Vue from 'vue'

export const store = new Vuex.Store({
  state: {
    patients: []
  }
});

尝试 2 错误

vuex.esm.js?94ea:135 Uncaught Error: [vuex] must call Vue.use(Vuex) before creating a store instance.
    at assert (vuex.esm.js?94ea:135)
    at new Store (vuex.esm.js?94ea:380)
    at eval (store.js?07a4:6)

我使用 Vue CLI 创建了一个 Vue 应用程序。我正在尝试实现 Vuex。我遵循了许多教程(通常设置了 2 种不同的方式)。使用调试器时,我能够在它读取“Vue.use(Vuex)”之前停止。此时记录 Vue 返回未定义。我相信我的进口是正确的,但不知道我是否遗漏了一些重要的东西。非常感谢任何帮助。

编辑:尝试 1 和 2 之间的唯一区别是我在尝试 2 上删除了“Vue.use(Vuex)”。

【问题讨论】:

    标签: vue.js vuex vuejs3 vuex4


    【解决方案1】:

    我可以通过卸载我的 VueX (3.6) 来完成这项工作

    npm uninstall vuex
    

    并安装 VueX(4.0 alpha)

    npm i vuex@4.0.0-alpha.1
    

    这个错误的原因是因为我使用了来自不同版本的两种不同的语法方法。

    感谢大家的帮助!

    ma​​in.js

    import { createApp } from 'vue'
    import { store } from './store/store'
    import App from './App.vue'
    
    const app = createApp(App)
    
    app.use(store)
    
    app.mount('#app')
    

    store.js

    import { createStore } from 'vuex'
    
    // Create a new store instance.
    const store = createStore({
      state () {
        return {
          patients: []
        }
      }
    })
    
    export default store;
    

    【讨论】:

    • 您应该接受另一个答案,因为它包含您在此处提供的详细信息
    【解决方案2】:

    您在 Vue 3 中使用 vuex 3 语法,它与具有以下语法的 vuex 4 兼容:

    store.js

    
    import { createStore } from 'vuex'
    
    // Create a new store instance.
    const store = createStore({
      state: {
        patients: []
      }
    })
    export default store;
    

    然后在 main.js 中使用导出的存储:

    import { createApp } from 'vue'
    import store from './store/store'
    import App from './App.vue'
    
    Vue.config.productionTip = false
    
    const app = createApp(App)
    
    app.use(store)
    
    app.mount('#app')
    

    Vuex 4 docs

    Vue.js 3 docs

    【讨论】:

    • 感谢您这么快回来!不幸的是,这让我回到了 store.js?07a4:4 Uncaught TypeError: Object(...) is not a function at eval (store.js?07a4:4) at Module../src/store/store.js (app.js:1342)
    • 我确定你已经安装了 vuex 3,请分享 package.json 文件以确认
    • “依赖”:{“core-js”:“^3.6.5”,“vue”:“^3.0.0”,“vue-responsive-components”:“^0.2.3 " }
    • 在 CLI 中尝试 npm uninstall vuex 然后 npm install vuex@next
    猜你喜欢
    • 1970-01-01
    • 2020-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-19
    • 1970-01-01
    • 1970-01-01
    • 2020-12-26
    相关资源
    最近更新 更多