将构造参数传递给 redux 中间件

ral*_*aul 6 middleware reactjs redux

我很好奇是否有办法将参数传递给中间件而不从状态中检索它。我想要做的是传递我们正在使用的通用函数,该函数确定用户是否经过身份验证。因此,与其从代码重复的状态中检索身份验证信息,不如将isAuthenticated函数传递给中间件。

我不认为这是在applyMiddleware框架中本地实现的,但也许有人可以解决这种情况。

ral*_*aul 4

好的,正确的方法是使用一个包装函数来包装实际的中间件函数

export const middlewareFunction = (store) => (next) => (action) => {
    do some stuff with something...
}
Run Code Online (Sandbox Code Playgroud)

如果这是您实际的中间件功能,那么您应该将中间件应用为

applyMiddleware(middlewareFunction);
Run Code Online (Sandbox Code Playgroud)

传递参数应该做的是实现类似的函数

export const middlewareWrapper = (args) => {
    do some stuff with your args 
    return (state) => (next) => (action) => {
        do more stuff with your args and actions
    }
} 
Run Code Online (Sandbox Code Playgroud)

使用此语法,您可以将中间件应用为:

applyMiddleware(middlewareWrapper(args));
Run Code Online (Sandbox Code Playgroud)