В случае с несколькими редукторами самым простым решением было бы просто использовать разные типы действий для каждого редуктора соответственно
Ответ ниже был дан с предположением, что 1 редуктор использовался с initalState {Mac: {type: "", os: ""}, PC: {type: "", os:""}}
Если вы хотите специально изменить атрибут типа объекта с помощью клавиши "Ma c", вы можете использовать это.
export default (state = intialState, action) => {
switch (action.type) {
case "SET_DEVICE_TYPE":
const {Mac} = state;
return {
...state,
Mac: {
...Mac,
type: action.payload
}
};
default:
return state;
}
};
Примечание: Если вы хотите специально изменить тип атрибут объекта с ключом "Ma c", тогда было бы лучше, если бы тип действия был похож на "SET_MAC_DEVICE_TYPE"
Также, если ключ должен быть динамическим c -
// action.payload = {key: "Mac", type: "ddd"}
export default (state = intialState, action) => {
switch (action.type) {
case "SET_DEVICE_TYPE":
const initValue = state[action.payload.key];
return {
...state,
[action.payload.key]: {
...initValue,
type: action.payload.type
}
};
default:
return state;
}
};