无法将第二个参数发送到 Vue 商店中的突变
Can't send in a second parameter to the mutation in Vue store
我有一个像这样的不错的突变 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);
我已经检查了在操作中发送的元数据,它绝对不是 未定义。但是,当我检查突变中的元时,它是!为什么?我该如何解决这个问题?
vuex docs 的建议是在第二个参数中发送一个负载。
In most cases, the payload should be an object so that it can contain multiple fields, and the recorded mutation will also be more descriptive:
所以你可以像这样用负载调用它:
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;
}, ...
}
还有一种调用变更的替代方法,称为对象样式提交。您可以在提交中传递一个对象,并将类型作为突变名称,如下所示:
context.commit({
type:: "UPDATE_DATA",
data: Map.table(payload.type, data),
meta: meta
});
我有一个像这样的不错的突变 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);
我已经检查了在操作中发送的元数据,它绝对不是 未定义。但是,当我检查突变中的元时,它是!为什么?我该如何解决这个问题?
vuex docs 的建议是在第二个参数中发送一个负载。
In most cases, the payload should be an object so that it can contain multiple fields, and the recorded mutation will also be more descriptive:
所以你可以像这样用负载调用它:
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;
}, ...
}
还有一种调用变更的替代方法,称为对象样式提交。您可以在提交中传递一个对象,并将类型作为突变名称,如下所示:
context.commit({
type:: "UPDATE_DATA",
data: Map.table(payload.type, data),
meta: meta
});