Skip to content

Commit

Permalink
Merge pull request #634 from nevnein/docs/expand-multiple-arguments
Browse files Browse the repository at this point in the history
  • Loading branch information
markerikson authored Nov 1, 2023
2 parents b654108 + 02d157c commit 6a009b6
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -531,6 +531,17 @@ A: Yes. Reselect has no dependencies on any other package, so although it was de

### Q: How do I create a selector that takes an argument?

Conceptually, Reselect works like this internally:

```ts
const finalSelector = (...args) => {
const extractedValues = inputFunctions.map(input => input(...args));
return output(...extractedValues);
}
```

In other words, all the arguments passed to the selector function are immediately passed to all of the inputs.

As shown in the API reference section above, provide input selectors that extract the arguments and forward them to the output selector for calculation:

```js
Expand All @@ -546,6 +557,9 @@ const selectItemsByCategory = createSelector(
)
```


More generally, you can have N arguments passed to the selector, and you can have M input functions extracting values from any of those arguments. All M extracted values get passed to the output function.

### Q: The default memoization function is no good, can I use a different one?

A: We think it works great for a lot of use cases, but sure. See [these examples](#customize-equalitycheck-for-defaultmemoize).
Expand Down

0 comments on commit 6a009b6

Please sign in to comment.