簡體   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