【发布时间】:2019-11-26 04:28:11
【问题描述】:
我是 Vue 和 Nuxt 的新手,我正在使用这些框架以通用模式构建我的第一个网站。
我对商店在 nuxt 中的运作方式有点困惑,因为按照官方文档我无法实现我的想法。
在我的商店文件夹中,我现在只放置了一个名为“products.js”的文件,在那里我导出状态如下:
export const state = () => ({
mistica: {
id: 1,
name: 'mistica'
}
})
(为了提供更清晰的解释,对对象进行了简化)
在同一个文件中,我设置了一个简单的 getter,例如:
export const getters = () => ({
getName: (state) => {
return state.mistica.name
}
})
现在,根据文档,在我这样设置的组件中:
computed: {
getName () {
return this.$store.getters['products/getName']
}
}
或者两者之一(不知道用什么):
computed: {
getName () {
return this.$store.getters.products.getName
}
}
但是当在模板中使用“getName”是“未定义”时,在后一种情况下,应用程序已损坏并显示“无法读取未定义的属性 'getName'”
请注意,在模板中,我可以毫无问题地使用“$store.state.products.mistica.name”直接访问状态值,为什么会这样?
我做错了什么,或者更好的是,我不明白什么?
【问题讨论】:
-
export const state / getters为何或如何发挥作用?还没有在 vuex.vuejs.org 上看到这个 - 这是 nuxt 的东西吗? -
@birdspider 的状态是正确的,但正如这里的人指出的那样,导出函数的吸气剂是不正确的,因为吸气剂、动作和突变都是对象。 Nuxt 集成了 vuex,默认使用模块和命名空间