如何使用Reselect访问当前的Redux状态?

时间:2016-02-19 23:42:28

标签: javascript reactjs ecmascript-6 redux

我想根据同一个选择器的最后一个值返回一个值。 e.g。

const myReselect = createSelector(
  [otherSelector],
  (otherValue) => {
    // how to access current state?
    return state.myReselect + 1
  }
)

const globalState = state => ({
  myReselect: myReselect(state)
})

1 个答案:

答案 0 :(得分:0)

您可以组合多个选择器来创建更复杂的选择。

例如,您有selectorA,它会返回一些数据,然后您希望合并来自selectorA的数据和来自state.dataB的其他数据。

创建一个额外的selectorB并制作最终的组合版本:

// this is reusable selector
import selectorA from './selectorA';

// this is our local selector 
const selectorB = state => state.dataB;

const finalSelector = createSelector(
   selectorA,
   selectorB,
   (a, b) => {
     return a + b;
   }
);

// pubish our resulting selector
export default finalSelector;
仅当某些相关选择器发生更改时,才会更新

finalSelector