Nuxt:无法从 js 文件访问 vuex 商店

时间:2021-03-19 22:22:35

标签: nuxt.js vuex

我正在 Nuxt 中创建一个带有 Vuex 状态管理的应用程序。问题是我想创建带有函数的 js 文件,我将其导入到我的 Vue 文件中。我需要在该文件中访问我的商店。

在functions.js 中,我想使用import store from "@/store" 导入商店,但是store 给了我空对象。当我执行 import store from "@/store/dice.js" 时,这是我想要访问的商店它返回 undefined 并且在控制台中我得到了信息:"export 'default' (imported as '$store') was not found in '~/store/dice'

@/store/index.js 为空。

@/store/dice.js 的结构类似于 Nuxt 教程:

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

export const mutations = {
add(state, text) {
state.list.push({
text,
done: false
})
},
remove(state, { todo }) {
state.list.splice(state.list.indexOf(todo), 1)
},
toggle(state, todo) {
todo.done = !todo.done
}
}

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

位于 store 目录中的 Vuex Store 文件将在构建时被 Nuxt 转换为 store 实例。

因此您无法将其中的任何文件导入到商店外的其他 js 文件中。

你必须解决:

  1. 推荐做法:将您的 function.js 文件夹添加到您的商店并在那里使用您的函数(在突变、操作等中调用它们...)
  2. 不建议这样做:function.js 中调用函数时,将商店实例作为参数传递,然后您可以使用它。