много if else внутри redux toolkit slice
Вопрос: можно ли так писать(точнее пишут ли так или надо как то иначе?)
const initialState = {
firstNumber: '',
secondNumber: '',
operation: '',
};
export const calculatorSlice = createSlice({
name: 'calculator',
initialState,
reducers: {
//payload === e.currentTarget
setNumber(state, { payload }) {
if(state.firstNumber) {
state.secondNumber = payload
}
if(!state.firstNumber && !state.secondNumber) {
state.firstNumber = payload;
}
if(payload === '.' && !state.secondNumber && !state.firstNumber) {
// .... if/else
}
// ....if/else
},
setOperation(state, { payload }) {
//....if/else
state.operation = payload;
//также изменение firstNumber или secondNumber
},
},
});
или как то так надо?
const initialState = {
firstNumber: '',
secondNumber: '',
operation: '',
};
export const calculatorSlice = createSlice({
name: 'calculator',
initialState,
reducers: {
//payload === e.currentTarget
setFirstNumber(state, { payload }) {
state.firstNumber = payload;
},
setSecondNumber(state, { payload }) {
state.secondNumber = payload;
},
setOperation(state, { payload }) {
state.operation = payload;
},
},
});
const setNumber = (payload) => (dispatch, getState) => {
const { firstNumber, secondNumber } = getState().calculator;
// ...if/else
// dispatch(setFirstNumber/setSecondNumber)
// ...
};
//const setOperationOrNumbers = ....
Источник: Stack Overflow на русском