[英]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.