[英]How can I change Vuex store obejct value with actions?(vue.js)
我将状态中的数据存储为数组,并且我想更改对象的值。 如何使用 vuex 操作将 id 1 值更改为 true?
状态.js
const array=[]
突变.js
storeArray(state, data) {
state.array = data;
}
动作.js
async changeValue({ state, dispatch, commit }, id) {
const item = await state.array[id].value;
await commit('storeArray', { value: true });
},
数组看起来像
[{
id: "1",
value: 'false'
}, {
id: "2",
value: 'true'
}]
您需要事先知道新数组的 id 和值。 要在状态数组中查找和更改所需的对象,您可以使用以下示例中的更改:
const store = new Vuex.Store({
state: {
objects: [{ id: 1, value: true }, { id: 2, value: true }]
},
mutations: {
changeObjectValue (state, { id, value }) {
const found = state.objects.find(item => item.id === id);
found.value = value;
},
},
});
通过这种方式,您可以在这样的一个操作中提交:
store.commit('changeObjectValue', {id: 2, value: false});
在plnkr上查看此示例
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.