У вас есть свойство user
в исходном состоянии, но затем вы пытаетесь назначить другое свойство state.user.buyer.addresses
, что неверно, потому что на самом деле вы хотите обновить addresses
внутри объекта user
.
Простым и быстрым способом глубокого клонирования объекта user
было бы преобразовать его в строку, а затем проанализировать.
const clone = JSON.parse(JSON.stringify(state.user));
, тогда вы можете назначить новые адреса
clone.buyer.addresses = payload.addresses
Наконец обновите свое состояние с помощью нового user
объекта
case SET_SHIPPING_ADDRESS:
return {
...state,
user: clone
}