Фиксация записи под-свойства в рамках действий магазина с использованием vuex-pathify make.mutations - PullRequest
1 голос
/ 02 октября 2019

Вот как выглядит мой магазин:

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

const mutations = make.mutations(state)

const actions = {
    submitPhoneNumber({commit}, phone_number) {
        // blah blah
        commit('SET_USER@profile.phoneNumber', phone_number);
    }
}

Но такой мутации найти не удалось. Возможно, я мог бы импортировать store.js из store.js и использовать помощник set, но я считаю, что все может стать довольно жутким, особенно из-за (на мой взгляд, плохого) дизайнерского решения, которое создатель библиотеки принял, чтобы объединить коммит и диспетчеризацию (Я считаю, что быть откровенным было бы здесь намного лучше)

1 Ответ

2 голосов
/ 02 октября 2019

Укажите автора здесь.

Вы не можете зафиксировать мутацию с синтаксисом подсвойства, используя мутации Vuex, потому что Vuex будет рассматривать ее как строку.

Вы правы, что вы бы сделалидля этого нужно использовать store.set().

Вы можете явно указать коммиты и диспетчеры, добавив ! к вызову. Это называется «прямым синтаксисом»:

Для фиксации напрямую с использованием синтаксиса подчиненного свойства используйте класс Payload:

Примерно так должно работать:

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

Похоже, я не задокументировал это,поэтому я сделал тикет здесь:

Он использует коммит из компонента, но должен работать точно так же.

Люди уже спрашивали, возможно ли использовать коммиты в стиле Pathify в действиях, и я сказал, что это не так, но я просто подумал о том, что может сделать это возможным.

Следуйте этому запросу функциидля получения дополнительной информации:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...