簡體   English   中英

將 SetTimeOut 與 React/redux 調度函數一起使用時出錯

[英]Error using SetTimeOut with React/redux dispatch function

所以我有這個狀態來處理錯誤消息,這個狀態有兩個動作

第一個用於設置消息:

export const setNotification = (message) => {
return {
    type: "SET_NOTIFICATION",
    data: {
        message,
        visibility: "visible"
    }
}

}

第二個用於在 5 秒后刪除消息:

export const clearNotification = (seconds=5) => {
setTimeout(()=>  { return {
    type: "REMOVE_NOTIFICATION",
    data: {
        message: "",
        visibility: "hidden"
    }
}}, seconds * 1000)

}

當調用名為 ClearNotification 的第二個函數時,我收到此錯誤:

Error: Actions must be plain objects. Use custom middleware for async actions.

為什么我會收到這條消息,我該如何解決?

謝謝。

那是因為您不能將函數作為操作返回。 這些動作是形狀為 ´{type: string, ...any}´ 的簡單對象。 如果你想返回一個函數,你應該谷歌搜索 redux-thunk 或 redux-saga 或 redux-observable 之類的東西,但這些都很棘手。

這個鏈接有一個你想要做什么的例子。 https://github.com/reduxjs/redux-thunk#motivation

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM