@KirillSPB777

Как в REDUX добавить данные в объект?

приветствую! помогите разобраться, ни как не могу понять как добавить или изменить данные внутри объекта не перезатирев другие данные
массив с данными
{"objects":{
  "1":{
    "data_1":[{"dat":1},{"dat":2)],
    "data_2":{"dat":"two"}
  },
  "2":{
    "data_1":[{"dat":1},{"dat":2)],
    "data_2":{"dat":"two"}
  }
}}

у меня не получается перезаписать/добавить data_2 не потеряв данные из data_1 и на оборот, redux тупо перезаписывает все что после "1":{

//redux.ts
const initialPartition = {
    objects: {}
};
function objectsReducer(state = initialPartition, action) {
    switch (action.type) {
        case DATA_OBJECT:
            const id = action.payload.id;
            const key = action.payload.key;
            return {
                ...state, objects: {
                    [id]: state[key], [id]: {
                        [key]: action.payload[key]
                    }
                }
            };
        default:
            return state;
    }
}
export default objectsReducer;

//action.ts
export const dataObject = object => dispatch => {
    dispatch({
        type: DATA_OBJECT,
        payload: object
    });
};

//app
const dataToObject = objectData => dispatch(dataObject(objectData));

function objectToRedux(item, key) {
            const objectData = {
                id: id,
                key: key,
                [key]: item
            };
            dataToObject(objectData);
        }

подскажите пожалуйста что не так
  • Вопрос задан
  • 175 просмотров
Решения вопроса 1
В коде лапша, поэтому точно ответить не могу, но вам нужно что-то подобное:
return {
    ...state,
    objects: {
        ...state.objects,
        [id]: {
            ...state.objects[id],
            [key]: action.payload[key]
        }
    }
};
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы