我有这段代码:
const result = Object.keys(state).reduce((result, key) => {
if (key.includes('game')) {
result[key] = state[key];
}
return result;
}, []);
this.props.sendBackResult(result);
最后一行当然会触发Redux动作。但这不是发送格式正确的数组,而是仅发送空数组。是什么原因呢? 当我插入一个日志而不是发送操作时,我看到先前功能的正确结果。
谢谢!
答案 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;
}, {});