使用重新选择条件组成选择器

Ben*_*Ben 1 javascript reactjs redux reselect

export const mySelector = createSelector(
    [selectorA, selectorB], // but I want selectorB or selectorC to be chosen here using logic
    (foo, bar) => {
        // ...
    }
);
Run Code Online (Sandbox Code Playgroud)

我想有条件地使用selectorBselectorC基于存储中的状态(即另一个选择器返回的值)创建此选择器时。

我怎样才能做到这一点?

And*_*aro 5

只是要指出,接受的答案中建议的方法将在每个选择器CorB调用上同时评估选择器B选择 C。这可能不是期望的行为。

实际的条件调用可能是这样实现的:

export const selectorCorB = createSelector(
    selectorStateX
    (...arguments) => arguments,
    (x, arguments) => x ? selectorB(...arguments) : selectorC(...arguments)
);
Run Code Online (Sandbox Code Playgroud)