【发布时间】:2019-03-13 05:19:31
【问题描述】:
我有以下代码,为 Redux 构建一个动作有效负载:
export function getInfoFromAPI() {
const initialAction = {
type: types.GET_SETTLE_SHEETS_FROM_LOCAL_API
};
let returnedAction = {};
let payloadBuild = {};
return dispatch => {
return APItools.getInfoFromLocalAPI()
.then(jsonResult => {
Object.keys(jsonResult).map( (resultArrayId) => {
debugger;
const { foo, bar, foobar, foofoo, barbar} = jsonResult[resultArrayId];
payloadBuild = _.merge({},
{
[barbar]: {
foo: foo,
bar: bar,
foobar: foobar,
foofoo: foofoo,
barbar: barbar
}
});
});
returnedAction = Object.assign({}, initialAction,
{
payload: payloadBuild
});
dispatch(returnedAction);
});
};
}
我正在尝试构建一个包含来自本地 API 的数据的 json 对象。当我之前使用过 Object.assign() 时,它会根据键添加信息,并将其附加到预先存在的对象上,就像你想象的那样。
我已经尝试了 lodash _.merge() 和 Object.assign 两者,切换它们,它似乎没有工作......它不断用下一个值覆盖键 [barbar]从地图功能,即使它会像
[barbar] = 1
然后
[barbar] = 2
它将取代钥匙和它所有的孩子......为什么?还有我该如何解决这个问题?当我之前使用过 Object.assign 时,它只会将新键附加到对象上,但我认为它一次只有一个。这是我第一次使用 map,我认为它会继续使用它们的唯一键值附加新对象。
【问题讨论】:
标签: javascript reactjs object redux mapping