У меня есть мутатор, который пытается выполнить следующее обновление:
state.forms[1].data.metrics.push(newArrayItem)
forms
- это объект с 1
в качестве ключа metrics
- это массив
По какой-то причине Vuex успешно обновляется, но компоненты не реагируют на это изменение. Я читал о Vue.set()
о https://vuejs.org/v2/guide/list.html#Object -Change-Detection-Caveats
Но я не уверен, как его применить, или даже если это правильный ответ вообще здесь .
Спасибо за помощь.
this.$forceUpdate
работает, что немного странно, поскольку компонент, загружающий данные, использует computed
свойства.
Состояние формы Первоначально настроить так:
const state = {
forms: {}
};
Новые формы нажимаются так:
state.forms[id] = { formName: payload.formName, data: {metrics: []}};
И новые метрики добавляются так:
var result = getParent(state, payload.path);
result.metricParent.data.metrics.push({ id: newMetricId(state, result.formId), ...payload.metric });