Skip to content

Instantly share code, notes, and snippets.

@victorvhpg
Last active April 9, 2018 01:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save victorvhpg/9432de8507cba15e52a2ad9dcc3fec17 to your computer and use it in GitHub Desktop.
Save victorvhpg/9432de8507cba15e52a2ad9dcc3fec17 to your computer and use it in GitHub Desktop.
reducer.js
import CONSTANTS from '../constants/';
const initialState = {
saldo: 0,
valorTransacao: 0,
erro: ""
};
let reducerConta = (state = initialState, action) => {
switch (action.type) {
case CONSTANTS.CREDITO:
return { ...state, erro: "", saldo: state.saldo + action.payload.valor };
case CONSTANTS.DEBITO:
return { ...state, erro: "", saldo: state.saldo - action.payload.valor };
case CONSTANTS.SET_VALOR_TRANSACAO:
return { ...state, erro: "", valorTransacao: action.payload.valorTransacao };
case CONSTANTS.ERRO_CONTA:
return { ...state, valorTransacao: 0, erro: action.payload.message };
default:
return state;
}
};
//outra maneira sem usar switch...
let reducerConta = (state = initialState, action) => {
let fn = {
[CONSTANTS.CREDITO]() {
return { ...state, erro: "", saldo: state.saldo + action.payload.valor };
},
[CONSTANTS.DEBITO]() {
return { ...state, erro: "", saldo: state.saldo - action.payload.valor };
},
[CONSTANTS.SET_VALOR_TRANSACAO]() {
return { ...state, erro: "", valorTransacao: action.payload.valorTransacao };
},
[CONSTANTS.ERRO_CONTA]() {
return { ...state, valorTransacao: 0, erro: action.payload.message };
}
};
if (Object.hasOwnProperty.call(fn, action.type)) {
return fn[action.type]();
}
return state;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment