我有一个很好的变异JS文件。
export default {
UPDATE_DATA: (state, data, meta) => {
state.dataTable = data;
if (meta === undefined)
return;
state.activeDataRow = meta;
}, ...
}
通过以下方式调用不同的行为。
context.commit("UPDATE_DATA", Map.table(payload.type, data));
context.commit("UPDATE_DATA", Map.table(payload.type, data), meta);
我已经检查了动作中发送的元数据,它绝对不是 undefined 。但是,当我检查突变中的meta时,它就是!为什么?我该如何解决这个问题?
答案 0 :(得分:5)
vuex docs建议在第二个参数中发送有效载荷。
在大多数情况下,有效负载应该是一个对象,以便它可以包含多个字段,并且记录的变异也将更具描述性:
所以你可以用有效载荷这样调用它:
context.commit("UPDATE_DATA", {data: Map.table(payload.type, data), meta: meta});
,您的变异将如下所示:
export default {
UPDATE_DATA: (state, payload) => {
state.dataTable = payload.data;
if (payload.meta === undefined)
return;
state.activeDataRow = payload.meta;
}, ...
}
还有一种调用突变的alternet方法,称为Object-Style Commit。您可以在提交中传递一个对象,类型为突变名称,如下所示:
context.commit({
type:: "UPDATE_DATA",
data: Map.table(payload.type, data),
meta: meta
});