Vuex getter не обновляется при изменении состояния - PullRequest
0 голосов
/ 15 марта 2019

Я не могу заставить получатель vuex обновляться при изменении объекта состояния.Я пытаюсь заставить получатель vuex вернуть общую сумму значений в объекте состояния с помощью функции Reduce.

// Mutation
state.shippingFees[method.sellerId] = method.fee; // state.shippingFees = { 1: 1900 }; etc.

// Getter
totalShippingFees: state => Object.values(state.shippingFees).reduce((total, fee) => total + fee, 0)

После установки пары ключ-значение платы за доставку в state.shippingFeesобъект, получатель все еще просто возвращает 0.

Ответы [ 2 ]

3 голосов
/ 15 марта 2019

Vue не может обнаружить добавление или удаление свойства

Использование Vue.set(state.shippingFees, method.sellerId, method.fee)

Подробнее здесь

1 голос
/ 15 марта 2019

Vue не позволяет динамически добавлять новые реактивные свойства корневого уровня к уже созданному экземпляру. Однако можно добавить реактивные свойства к вложенному объекту, используя метод Vue.set (object, key, value)

Следовательно, способ обновления над объектом не является реактивным. Следовательно, ваши значения не обновляются в получателе. Чтобы узнать больше о реактивности vue, прочитайте здесь .

Чтобы сделать его реактивным, вам нужно использовать $ set или object.assign

Обновите вашу мутацию, как показано ниже =>

Vue.$set(state.shippingFees,method.sellerId,method.fee);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...