@salarimus

Как правильно использовать reducer?

Помогите советом. Начал изучать redux и немного подвис на составлении редусера.
Пример
const initialState = {state: 'start'};

export default function stateGame(state = initialState, action) {
    
    switch (action.type){
        case 'CHANGE_GAME_STATE':
            return {state: action.payload};
        default:
            return state;
    }
}

Данный редусер должен изменять состояние игры. Т.е я передаю в payload состояние (например end, start, pause) и потом меняю состояние компонента. Либо правильнее будет составить такой редусер

const initialState = {state: 'start'};
export default function stateGame(state = initialState, action) {
    
    switch (action.type){
        case 'GAME_START':
            return {state: 'start'};
        case 'GAME_END':
            return {state: 'end'};
        case 'GAME_PAUSE':
            return {state: 'pause'};
        default:
            return state;
    }
}
  • Вопрос задан
  • 161 просмотр
Решения вопроса 1
alvvi
@alvvi
export default apathy;
В доках на этот счет все есть, хоть и в не совсем очевидном месте
тык
505a47b883c24cf1be91954934ae8969.png

То есть: на ваше усмотрение.
Я лично предпочитаю первый вариант, но второй более "понятный".
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Ориентируйтесь на логику вашего приложения.
Если вам нужно регировать на сообщения GAME_START\GAME_... то можно и второй вариант. Но первый выглядит красивее. Если, конечно, сделать к нему несколько экшен креаторов вроде: startGame, endGame, pauseGame
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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