[英]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 = [];
}),
我想创建另一个动作,比如说reset
或resetAll
,它在内部将上述 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.