我的vuex变异如何发送新动作或我的动作如何获得对商店的读取权限?
基本上我有一个调用突变的动作:
updateSelectedItems: (context, payload) => {
context.commit('updateSelectedItems', payload);
},
以及更新列表的突变 . 它还可以获得任何新物品 . 我需要对这些新项目做些什么:
updateSelectedItems: (state, payload) => {
var newItems = _.differenceWith(payload, state.selectedItems, function (a, b) {
return a.name === b.name;
});
state.selectedItems = _.cloneDeep(payload);
_.each(newItems, (item) => {
// How do I do this??
context.dispatch('getItemDetail', item.name)
});
},
1 回答
让你的突变做得太多真的不是最好的做法 . 如果它们超级简单并且通常只做一件事,那就最好了 . 让您的行为处理可能影响州的任何多步骤流程 .
你的例子会更有意义地结构化:
如果你真的需要从变异内部发送一些东西(我强烈建议不要这样做),你可以将调度函数作为有效载荷的一部分传递给变异 .