Open
Description
When passing in many inputs, it's awkward to remember the indexes inside the input tuple when you're trying to read/destructure a specific input, e.g:
useObservable(
input$ => {
const dispatch$ = input$.pipe(
map(input => input[5]),
distinctUntilChanged(),
);
/* … */
},
200,
[
props.shouldDisableInfiniteScroll,
props.isDoneFetching,
props.fetchDataParams,
props.fetchDataAndBuildActions,
props.dispatch,
props.history,
],
);
If the inputs were represented as an object instead, they would be much easier to destructure.
useObservable(
input$ => {
const dispatch$ = input$.pipe(
map(({ dispatch }) => dispatch),
distinctUntilChanged(),
);
/* … */
},
200,
pick(
props,
"shouldDisableInfiniteScroll",
"isDoneFetching",
"fetchDataParams",
"fetchDataAndBuildActions",
"dispatch",
"history",
),
);
Activity
OliverJAsh commentedon Feb 5, 2020
Another idea: the inputs could be provided as separate observables. This way, users don't have to destructure the observable, nor do they have to worry about adding
distinctUntilChanged
:OliverJAsh commentedon May 29, 2020
I think
observable-hooks
solves this problem because you can do:and then use that inside any closure.
Sawtaytoes commentedon Jun 5, 2020
I like the idea of each prop being an observable, but that could get somewhat complex when listening to many of them.
OliverJAsh commentedon Aug 25, 2020
Re. #99 (comment)
This is a start: https://stackblitz.com/edit/react-ts-p7ueqk.
@Brooooooklyn What do you think to this idea?