У меня есть следующий код, создающий полезную нагрузку для 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);
});
};
}
Я пытаюсь создать один объект json, который будет охватывать данные, поступающие из моего локального API. Когда я использовал Object.assign () ранее, он работал, добавляя информацию, основанную на ключе, и добавлял ее к уже существующему объекту, как вы думаете.
Я пробовал lodash _.merge () и Object.assign и то и другое, переключая их, и, похоже, он не работает ... он продолжает перезаписывать ключ [barbar], когда приходит следующее значение из функции карты, даже если это будет похоже на
[barbar] = 1
тогда
[barbar] = 2
Он заменит ключ и всех его детей .... почему? А также как мне это исправить? Когда я использовал Object.assign ранее, он просто добавлял новые ключи к объекту, но я думаю, что это был только один раз за раз. Это первый раз, когда я использую карту, которая, как я предполагаю, просто продолжит добавлять новые объекты с их уникальными значениями ключа.