javascript - Vuex 状态在突变后不更新

标签 javascript vue.js vuex

我正在尝试使用 Vue/Vuex 应用程序中的突变来设置一些值。

组件.vue

created() {
    let clubId = {'clubId': 31};
    this.$store.dispatch(
    "clubConfiguration/getClub",
    clubId 
  );
}

action.js

getClub(context, payload) {
    ApiService().post('/club/getSingleClub', {
        "ClubId": payload.clubId
    })
     .then(res => {
          context.commit('GET_CLUB_INFORMATION', res.data.data[0]);
     })
     .catch(err => {
           console.log(err)
    })
}

mutation.js

GET_CLUB_INFORMATION(state, payload) {
    state.Name = payload.Name
    console.log(state);
}

state.js

Name: '',
mapLocation: { lat: 39.585693, lng: 2.622868, zoom: 18 },
courts: [
    {
        id: 0,
        number: 1,
        name: 'Court 1',
        map: null
    }
]

现在,在 console.log 中,我在突变中显示,有效负载中的“名称”已与其他状态属性一起附加到状态。但是,当我检查 Vue 开发工具或尝试从组件访问 state.Name 时,它会将状态中的 state.Name 属性显示为 undefined 。我做错了什么?

最佳答案

找到了!你的突变应该是

 GET_CLUB_INFORMATION(state, payload) {
  state.Name = payload
  console.log(state);
 }

因为您只传递名称,而不是整个负载

关于javascript - Vuex 状态在突变后不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57147942/

相关文章:

javascript - 从 2 个字段中获取值并在第三个字段中显示乘法

vue.js - 如何从 keep-alive 销毁缓存的 Vue 组件?

javascript - 过滤 Axios 响应

binding - 使用计算属性和 VueX 的样式绑定(bind)

vuejs2 - VueJS 如何将两个参数传递给 Vuex 操作

javascript - PhoneGap 应用程序中的 jQuery 问题

javascript显示超时消息

javascript - 如何在 JavaScript 中比较数组?

excel - 如何使用 laravel 和 vuejs 下载文件

vue.js - 使用 v-model 在 Vue-Electron App 启动时初始化 vuex 存储数据