繁体   English   中英

从另一个动作调用动作

[英]Calling action from another action

我有一个子商店

info: {}, 
data: {},
items: [],

我创建了 3 个操作来重置上面显示的各个属性:

resetInfo:action((state, payload) => {
    state.info = {};
  }),
resetData: action((state, payload) => {
    state.data = {};
  }),
resetItems:action((state, payload) => {
    state.items = [];
  }),

我想创建另一个动作,比如说resetresetAll ,它在内部将上述 3 个动作称为:

reset:action((state, payload) => {
    resetInfo();
    resetData();
    resetItems();
}),

但我收到错误,因为找不到这些方法。 那么有没有办法可以在重置操作中调用 3 个操作?

我也知道,我可以如下所示编写我的重置,但我很喜欢使用上述方法的解决方案

reset:action((state, payload) => {
    state.info = {};
    state.data = {};
    state.items = [];
}),

只需创建一个不同的 function:

function setInState(state, p, value) {state[p] = value}

然后从您的所有操作中调用 setInState ...

如果您坚持使用没有单独 function 的操作,它们是另一个 object 的属性,而不是独立变量。 因此,您可以从 object 中获取它们。

所以也许 this.resetData() 可能会起作用。 但我的第一个建议通常更强大......

此外,“this”甚至在箭头 function 中也不起作用; 所以你可能需要改变其他的东西......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM