我需要给vuex模块打电话,它不工作了.我看过文档,但仍然不起作用.希望有人能帮我.

const stateLocations ={

    state: {

        provinces: {},
        cities: {}
    },
    mutations: {
        provinces(state, payload){

            state.provinces = payload
        }
    }
}


const store = new Vuex.Store({

    modules: {
        locations: stateLocations
    }


})

我调用Mutations 的代码

created(){

            var store = this.$store

            axios.get('api/provinces')
                .then( function(response){

                    store.state.locations.commit('provinces', response.data)
                })
                .catch()
        }

这个不行

推荐答案

因为你没有在模块中启用namespaced,你只需要

this.$store.commit('provinces', response.data)

如果要启用命名空间:

const stateLocations = {
  namespaced: true,
  state: {
    ...

然后你做出这样的Mutations :

this.$store.commit('locations/provinces', response.data)

Vue.js相关问答推荐

如何用其他组件编译Vue模板?

从组件中检索 Shopware CMS 编辑器中的自定义实体数据

Vue 3组合式API如何测试是否发出正确的事件

如何向 添加方法和 v-model?

Vue 和 Nuxt 之间生命周期钩子的不同行为

在 Vue 中启用(控制台)记录路由事件

如何对对象数组进行 v-model

有条件地在 Vue 中添加一个 CSS 类

Vue 两种方式的 prop 绑定

为什么Vue.js 使用单字标签

如何使用 laravel-mix 将 bootstrap-vue 加载到 Laravel 5 中?

不需要提交Mutations的 vuex 操作

Vue更改宽度和内容

如何在 Vue 中转发 $refs

从 ajax 调用填充 Vue.js 中的下拉列表

如何从方法内部访问数据

标签中的 href 赋值

Vuetify 过渡:如何设置过渡速度

v-bind:class 的 Vue.js 计算(computed)属性

在 vue.js 应用程序中将静态内容(例如国家代码)存储在哪里?