@bazliiii

Redux React несколько actions?

Проблема: Хочу сделать несколько actions ( payload и id )
dispatch({ type: "ADD_MONEY", payload:users.cash + sum ,id:users.id})

После этого в редюсере отрабатывает такой код:
case ADD_MONEY:
            return {
                users: state.users.map((user) => {
                       if ( user.id === action.id){
                        return { ...user, cash: action.payload } as UsersT
                       }
                })
            } as defUserState

Но проблема в том , что при срабатывании dispatch экран становится черным ( ошибок в терминале нет )

Полный редюсер:
const ADD_MONEY = 'ADD_MONEY';

interface defAction {
    type: string;
    payload?: any;
    id:number;
}
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 {
                users: state.users.map((user) => {
                       if ( user.id === action.id){
                        return { ...user, cash: action.payload } as UsersT
                       }
                })
            } as defUserState
        default:
            return state
    }
}

Полная функция:
const addCash = (sum: number) => {
        users.map(users => {
            if (users.id === SaveIndex) {
                SetMoney(users.cash + sum)
                dispatch({ type: "ADD_MONEY", payload:users.cash + sum ,id:users.id})
            }
            return Money
        })
    }
  • Вопрос задан
  • 115 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы