顽固的Redux动作发送空数组

时间:2018-07-15 21:10:16

标签: javascript reactjs redux

我有这段代码:

        const result = Object.keys(state).reduce((result, key) => {
        if (key.includes('game')) {
          result[key] = state[key];
        }
        return result;
      }, []);
      this.props.sendBackResult(result);

最后一行当然会触发Redux动作。但这不是发送格式正确的数组,而是仅发送空数组。是什么原因呢? 当我插入一个日志而不是发送操作时,我看到先前功能的正确结果。

谢谢!

1 个答案:

答案 0 :(得分:1)

您正在使用一个空数组[]作为reduce的初始值。在阵列上设置键很可能不是您想要执行的操作。

您可以改为将其中包含game的所有键推入对应于数组的值:

const result = Object.keys(state).reduce((result, key) => {
  if (key.includes('game')) {
    result.push(state[key]);
  }
  return result;
}, []);

如果您仍然希望最终结果中包含键,那么您很可能希望使用一个对象代替

const result = Object.keys(state).reduce((result, key) => {
  if (key.includes('game')) {
    result[key] = state[key];
  }
  return result;
}, {});