Laravel + Vuex:Object/argument 解构不起作用

Laravel + Vuex: Object/argument destructuring not working

我正在使用 Vuex 构建 Vue 应用程序,但无法使以下代码正常工作(为简洁起见进行了编辑,灵感来自 this blog post)。

// File: views/Board.vue

export default {
    methods: {
        updateProp (prop, value) {
            console.log(prop, value) // Outputs prop and value

            this.$store.commit('board/updateProp', {
                [prop]: value
            })
        }
    },

    // ...
}

在我的(命名的)Vuex 模块中:

// File: vuex/modules/board.js

export default {
    mutations: {
        updateProp (state, { prop, value }) {
            console.log(prop, value) // Outputs 'undefined undefined'
        }
    },

    // ...
}

因为 import { something } from 'somewhere' 工作正常,我倾向于相信对象解构 工作 。我很困惑为什么我的代码没有。

我还使用以下内容创建了一个 .babelrc 文件,并安装了相应的插件和预设,但无济于事。

{
    "plugins": [
        "transform-es2015-destructuring",
        "transform-object-rest-spread"
    ],
    "presets": [
        ["es2015", { "modules": false }]
    ]
}

非常感谢帮助。

这可能不是答案,但很难放入评论中。我不确定为什么 propvalue 都是 undefined,但这不是解构的工作方式(它不会解压缩对象的键和值)。当前设置仅在您使用具有 prop 键和 value 键的对象调用它时才有效:

this.$store.commit('board/updateProp', { prop, value })