Javascript 不创建新实例
我有以下代码,为Redux构建操作负载:Javascript 不创建新实例,javascript,reactjs,object,redux,mapping,Javascript,Reactjs,Object,Redux,Mapping,我有以下代码,为Redux构建操作负载: export function getInfoFromAPI() { const initialAction = { type: types.GET_SETTLE_SHEETS_FROM_LOCAL_API }; let returnedAction = {}; let payloadBuild = {}; return dispatch => { return APItools.getInfoFromLoc
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);
});
};
}
我试图构建一个json对象,该对象将包含来自本地API的数据。当我以前使用Object.assign时,它会根据键添加信息,并按照您认为的方式将其附加到预先存在的对象
我尝试了lodash uz.merge和Object.assign两种方法,对它们进行切换,但似乎都不起作用。。。它不断用map函数中的下一个值覆盖键[barbar],即使这样
[barbar] = 1
然后
它将替换钥匙及其所有子项。。。。为什么?我该如何解决这个问题?当我以前使用Object.assign时,它只会将新键附加到对象上,但我认为它一次只能附加一个键。这是我第一次使用map,我假设map会继续附加具有唯一键值的新对象。您忘记了合并旧值
let buildValue = {}
arrayWithStuff.map(info => {
buildValue = Object.assign(buildValue, {
[info.bar] : {
Other stuff..
})
将每个结果与新的空对象第一个参数合并
祝你好运 找到了答案:
payloadBuild = _.merge({}, payloadBuild <---- this needed to be added
{
[barbar]: {
foo: foo,
bar: bar,
foobar: foobar,
foofoo: foofoo,
barbar: barbar
}
});
是的!我刚刚发现,正如你发布的:-谢谢。我会把你的答案记下来,给你打分
payloadBuild = _.merge({}, payloadBuild <---- this needed to be added
{
[barbar]: {
foo: foo,
bar: bar,
foobar: foobar,
foofoo: foofoo,
barbar: barbar
}
});