-
Notifications
You must be signed in to change notification settings - Fork 54
Open
Description
Feature Request
Similar to reselect
, would be nice to compose selectors with other selectors, that way the business logic can be abstracted and isolated to the selector.
Example
// basic example: state.user.avatar.src
const user = createSelector(state => state.user);
const userAvatar = createSelector(user, userState => userState.avatar);
const userAvatarSrc = createSelector(userAvatar, userAvatarState => userAvatarState.src);
// advanced example: state.user.avatar.src || state.config.defaultAvatar
const config = createSelector(state => state.config);
const defaultAvatarSrc = createSelector(config, configState => configState.defaultAvatar);
const avatar = createSelector(
userAvatarSrc,
defaultAvatarSrc,
(userAvatarSrcState, defaultAvatarSrcState) => (
userAvatarSrcState || defaultAvatarSrcState
)
);
hrsh7th
Metadata
Metadata
Assignees
Labels
No labels