много if else внутри redux toolkit slice

Рейтинг: 0Ответов: 0Опубликовано: 07.05.2023

Вопрос: можно ли так писать(точнее пишут ли так или надо как то иначе?)

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 = ....

Ответы

Ответов пока нет.