javascript 中的连续函数

continious functions in javascript

我正在学习redux,在这段代码中有一个连续的函数来传递参数。 我无法理解这背后的逻辑,因为我最初是 PHP 开发人员,这很不寻常。 你能为我解释和简化吗?

这是我的选择器:

export const personBugs = userId => createSelector(
    state => state.entities.bugs,
    bugs => bugs.filter(bug => bug.userId === userId )
)

这是我的调度:

console.log(bugsActions.personBugs(1)(store.getState()));

它被称为 curry 函数或 currying,这是当您想要提供一个参数并在稍后提供另一个参数时。

我不确定为什么选择器在您的操作对象上,但我确定这是一个错误。选择器通常用在组件中以获取组件所需的数据,但也可以用在中间件中以获取状态信息。

下面是如何在组件中使用选择器的示例:

const PersonBugs = React.memo(function PersonBugs({
  personId,
}) {
  //here is a way to use the curry
  const bugs = useSelector(personBugs(personId));
  //if this wasn't a curry you have to do
  // const bugs = useSelector((state) =>
  //   personBugs(personId, state)
  // );
  //you could also not memoize the selector if you needed to
});

可以找到有关选择器的更多信息here