@bazliiii

Redux изменение значений в массиве обьектов?

Хочу сделать при нажатии на кнопку prompt и при вводе туда числа , что бы изменялось значение cash , но выдает ошибку: "Свойство "cash" не существует в типе "defUserState"."
Код:
const ADD_MONEY = 'ADD_MONEY';

interface defAction {
    type: string;
    payload?: any;
}
type UsersT = {
    id: number;
    name: string;
    cash: number;
}
interface defUserState {
    users: Array<UsersT>;
}
const defaultUserState: defUserState = {
    users: [
        { id: 0, name: "Maxim", cash: 100, },
        { id: 1, name: "Danil", cash: 300, },
        { id: 2, name: "Bogdan", cash: 550, },
    ]
}


export const UserAccount = (state = defaultUserState, action: defAction): defUserState => {
    switch (action.type) {
        case ADD_MONEY:
            return {...state, users: state.cash + action.payload}
        default:
            return state
    }
}


Была идея вот так написать , но ошибка та же
return {...state, users: [...state.users , cash: state.cash + action.payload]}
  • Вопрос задан
  • 85 просмотров
Решения вопроса 1
Geminix
@Geminix
Фуллстек nuxt, .net разработчик
return {
  users: state.users.map((user:UsersT)=>{
     return {
        ...user,
        cash: user.cash+action.payload
      } as UsersT
    } )
} as defUserState
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
01 мая 2024, в 02:11
5000 руб./за проект
01 мая 2024, в 00:29
2000 руб./за проект
01 мая 2024, в 00:20
15000 руб./за проект