redux中间件->拦截/阻止/转换?

Ant*_*ung 3 javascript redux react-redux redux-middleware

我们正在运行SPA。分派的操作(不是组件)是基于身份验证的。

是否可以拦截和转换调度的动作?

dispatch({
    type: 'FOO',
    payload: { some: value }
})

function magicMiddleware(action) => decide if authorized. 
if no...

dispatch({
    type: 'BAR',
    payload: { new: value }
})

else continue
Run Code Online (Sandbox Code Playgroud)

请注意,'FOO'绝不能击中减速器

mar*_*son 6

是的,那绝对是中间件的预期用例之一。任何中间件都可以检查和修改流经管道的任何动作,然后再到达减速器,甚至阻止动作继续进行。

您可能需要阅读Redux文档中的Middleware页面以及React / Redux链接列表中Redux Middleware类别中的文章。这些应该使您更好地了解中间件如何工作以及如何使用它们。