[vuex] getters should be function but "getters.getUser" in module "article" is {"name":"Fengfeng","age":18}.
时间: 2023-09-08 18:16:38 浏览: 173
关于你提到的错误信息,它是因为在 Vuex 模块中的 getters 期望是一个函数,而不是一个对象。在你的代码中,"getters.getUser" 是一个对象,应该改为一个函数。
你可以在 Vuex 模块文件中的 getters 部分做如下修改:
```javascript
// article.js
const getters = {
getUser: state => {
return state.user;
}
};
export default {
// 其他模块配置...
getters
};
```
通过这样的修改,你就可以访问 `getters.getUser` 来获取 `user` 对象了。希望能帮到你!如果还有其他问题,请继续提问。
相关问题
vuex] getters should be function but "getters.filePreUrl" is undefined.
当你看到这样的错误信息 "vuex getters should be a function but \"getters.filePreUrl\" is undefined",它是在提醒你关于Vuex(Vue.js的状态管理库)中的getters配置问题。getters是Vuex store中用于计算状态的函数,通常它们会被用来转换、处理或获取来自store的数据。
在这个错误中,意味着你的 `filePreUrl` getter 被定义成了undefined,而不是一个函数。解决这个问题需要检查以下几个步骤:
1. **getter的定义**:确保你在`store.js` 或者相关的模块 (`module.js`) 中有正确的getter定义。例如,应该像这样定义一个getter:
```javascript
export const getters = {
filePreUrl(state) {
return state.file.url ? 'https://example.com/' + state.file.url : '';
}
};
```
2. **state初始化**:确认对应的`state`字段(这里应该是`file`对象及其`url`属性)已经被正确地初始化了,并且不是null或undefined。
3. **引用路径是否正确**:检查在组件中是否正确导入并使用这个getter,确保使用的路径名与定义一致。
如果以上都检查无误,但问题仍然存在,可能是由于文件加载顺序导致的,在应用启动初期getters还没被完全加载。你可以尝试在actions或mutations中获取数据,然后在getters里使用这些数据。
nuxt vuex getters
在 Nuxt.js 应用程序中,可以使用 Vuex 存储全局状态。Vuex 中的 getters 允许我们从 store 中获取数据,类似于计算属性。在 Nuxt.js 中,可以通过在 store/index.js 文件中定义 getters 来创建 getter。
例如,我们可以在 store/index.js 文件中定义一个名为 getUser 的 getter:
```
export const getters = {
getUser: state => {
return state.user
}
}
```
在上面的示例中,我们定义了一个名为 getUser 的 getter,它返回存储在 state.user 中的用户数据。
然后,在组件中可以使用 $store.getters.getUser 来访问此 getter。例如:
```
<template>
<div>
<h1>Hello, {{ user.name }}!</h1>
</div>
</template>
<script>
export default {
computed: {
user() {
return this.$store.getters.getUser
}
}
}
</script>
```
在上面的示例中,我们使用 $store.getters.getUser 访问了在 store 中定义的 getUser getter,并将其返回的用户信息作为计算属性 user 的值。然后,在模板中可以使用 user.name 来访问用户的名称。
阅读全文