Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 在mapState中使用重新选择将选择器值添加到一起_Reactjs_Redux_Reselect - Fatal编程技术网

Reactjs 在mapState中使用重新选择将选择器值添加到一起

Reactjs 在mapState中使用重新选择将选择器值添加到一起,reactjs,redux,reselect,Reactjs,Redux,Reselect,感觉我错过了一些简单的东西 如果我有以下选择器,请参阅代码。使用“重新选择”如何将它们组合在一起以创建新的选择器?我想做一些像这样的事情 export const mapState = (state, ownProps) => { return { //SELECTORS! sub1: selector(state, 'sub1') || 0, sub2: selector(state, 'sub2') || 0, totalSelector: crea

感觉我错过了一些简单的东西

如果我有以下选择器,请参阅代码。使用“重新选择”如何将它们组合在一起以创建新的选择器?我想做一些像这样的事情

export const mapState = (state, ownProps) => {
  return {
    //SELECTORS!
    sub1: selector(state, 'sub1') || 0,
    sub2: selector(state, 'sub2') || 0,
    totalSelector: createSelector(sub1, sub2, (sub1, sub2) => ({total: sub1 + sub2}))
  };
};

是否需要在mapState之外执行此操作?当前第6行中的sub1和sub2未定义。

是的,在创建对象之前需要定义它们,如:

export const mapState = (state, ownProps) => {
  const sub1 = selector(state, 'sub1') || 0;
  const sub2 = selector(state, 'sub2') || 0;
  return {
    //SELECTORS!
    sub1,
    sub2,
    totalSelector: createSelector(sub1, sub2, (sub1, sub2) => ({total: sub1 + sub2}))
  };
};
问题是,在mapState中,您将undefined传递给createSelector函数,因为sub1和sub2尚未创建。您需要在构造返回的对象之前创建它们