使用vuex-pathify make.mutations进行具有存储操作的子属性写入提交

问题描述 投票:0回答:1

这是我的商店的样子:

const state = {
    user: {
        profile: {
            phoneNumber: '',
        }
    }
}

const mutations = make.mutations(state)

const actions = {
    submitPhoneNumber({commit}, phone_number) {
        // blah blah
        commit('[email protected]', phone_number);
    }
}

但是找不到这种突变。也许我可以在store.js中导入store.js并使用set帮助器,但是我相信事情会变得非常令人毛骨悚然,特别是因为库创建者做出了将提交和分派结合在一起的(我认为很差)设计决定(我相信在这里露骨会好得多)

vue.js vuex
1个回答
1
投票

在此处验证作者。

您不能使用Vuex突变使用子属性语法来进行突变,因为Vuex会将其视为字符串。

您是正确的,您需要使用store.set()来执行此操作。

您可以通过将!附加到调用中来明确提交和分派。这称为“直接语法”:

要直接使用子属性语法进行提交,请使用Payload类:

类似这样的方法应该起作用:

import { Payload } from 'vuex-pathify'
commit('SET_USER', new Payload('SET_USER', @profile.phoneNumber', phone_number);

好像我还没有记录下来,所以我在这里订了票:

它使用的是来自组件的提交,但应该可以完全相同。

人们以前曾问过在动作中是否可以使用Pathify样式的提交,我说不是,但是我只是想到了可能的事情。

按照此功能要求获取更多信息:

© www.soinside.com 2019 - 2024. All rights reserved.