繁体   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