[Redux] Derived Data
Reducer:
const emprestimo = (
state = {
numeroMeses: new BigNumber(36),
taxa: new BigNumber(1.82),
valorPrestacao: new BigNumber(304),
valorFinanciado: new BigNumber(10000)
},
action
) => {
switch (action.type) {
case "NUMERO_MESES":
return { ...state, numeroMeses: action.numeroMeses };
case "TAXA":
return { ...state, taxa: action.taxa };
case "VALOR_PRESTACAO":
return { ...state, valorPrestacao: action.valorPrestacao };
case "VALOR_FINANCIADO":
return { ...state, valorFinanciado: action.valorFinanciado };
default:
return state;
}
};
How to calculate the result values?
Create a selector, using reselect!
const valores = state => state;
const derivados = createSelector(valores, state => {
///calculate the total...
return {
total: total
};
});
With the selector
we need to conect with the reducers
:
const mapStateToProps = state => {
return {
derivados: derivados(state)
};
};
connect(mapStateToProps)(CalculoPrestacao);
To use, just do the normal things:
const {
derivados
} = state;
<CalculoPrestacao derivados={derivados} />
<Resultado derivados={this.props.derivados} />
const { createSelector } = Reselect;
const { connect } = ReactRedux;