redux中间件功能级联应该如此复杂吗?

时间:2017-10-16 17:07:21

标签: javascript redux redux-middleware

要在redux中定义中间件,我们需要编写一系列函数,如:

const middleware = middlewareApi => next => action => {
    //logic here
}

问题是这个签名是否是:

是否可以用以下签名替换(当然还有对Redux代码的相应更改):

const middleware = (middlewareApi, next) => action => {
    //logic here
}

我意识到结果并不完全等同于前者,但似乎没有对applyMiddleware案例产生任何影响。这种语法的好处是让IMO不那么容易混淆。

1 个答案:

答案 0 :(得分:1)

我们有一个新的"Design Decisions" FAQ页面可以解答这个问题。 (文档尚未使用新内容重新发布,因此我将链接Markdown文件。)

正如其他评论所提到的:currying是一种标准的函数式编程技术,在这种情况下,它有助于提供闭包,中间件作者可以存储需要在中间件生命周期内访问的值。

请参阅常见问题解答条目,以获取有关该主题的先前讨论的链接。