vue.js - Mutation not committing state vuex - Nuxt
问题描述
I am working on vuex app, on my other page i am committing changes to state its working, but here on this specific page i am getting some data from api and storing it in store but it get stuck in mutation, I am getting all data in mutation payload but its not effecting the changes, Please check the screenshot and code,
I can not create fiddle cuz it works there
Getting Items
async getItems () {
await this.$axios.get(`/api/projects/w/latest/all`)
.then(response => {
this.$store.commit('project/UPDATE_PROJECTS', response.data.items)
});
}
Action
updateProjectsAction (context, projects) {
context.commit('UPDATE_PROJECTS', projects)
},
Mutation
UPDATE_PROJECTS (state, payload ) {
state.projects = payload
}
State
projects: {},
When i click load state or manually commit these changes it gives me this error.
解决方案
在获取物品时
this.$store.commit('project/UPDATE_PROJECTS', response.data.items)
你应该把它改成
this.$store.dispatch('project/updateProjectsAction', response.data.items)
在行动中你应该改变
updateProjectsAction ({commit}, projects) {
commit('UPDATE_PROJECTS', projects)},
最后一件事,你应该有从 vuex 获取数据的 getter
getters:{
getProjects: state =>{
return state.project
}
}
在 .vue 中
import 'mapGetters' from 'vuex'
export default {
computed:{
...mapGetters({
projects: project/getProjects
})
}
}
getters 和 computed 将帮助您的 vue 应用程序反应
推荐阅读
- common-lisp - SBCL 特定声明
- c# - 将 Double 转换为字符串(完整数字)C#
- nfc - Android Things 和 NFC
- python - pypy pip:尝试在 Ubuntu 18.04 LTS 上安装加密时出错
- javascript - 了解一个简单的 javascript 小部件结构,并将其编写为 ES6 类
- javascript - Repeating number RegExp in javascript
- amazon-web-services - AWS EKS Workers 从不向 ELB 注册
- node.js - 2FA 的特定于令牌的声明
- apache-spark - 使用 Spark Catalyst 逻辑计划修改查询
- filesystems - 用于 OpenEBS Jiva 和 cStor 卷的后端文件系统是什么?