У меня есть папка опций в хранилище, чтобы сохранить связанные с опциями, которые мне нужно получить при запуске, и, возможно, получить данные из хранилища опций в других случаях.
несколько вопросов
1- У меня есть действия и отправки для get_all, get_all_error. get_all_sucess? мне также нужны эти действия для каждого запроса?
2 - редуктор теперь с 3 корпусами переключателей, но легко добавить множество корпусов переключателей, как я могу разделить его на несколько редукторов и действий?
3- Комбинированный редуктор включает 7-8 редукторов, это нормально или я должен разделить редуктор и как я могу это сделать?
Конечно, мне нужен файл типов для всех этих действий с интерфейсом для каждого действия, поэтому файл типов также большой
моя страница действий:
import {
OPTIONS_GETALL_SUCCESS,
OPTIONS_GETALL_REQUEST,
OPTIONS_GETALL_FAILURE
} from './types';
import { AppState } from '..';
type ThunkResult<R> = ThunkAction<void, AppState, DIServices, AnyAction>;
export const getAllOptions = (): ThunkResult<void> => async (
dispatch: any,
state: any,
services: DIServices
) => {
try {
dispatch({ type: OPTIONS_GETALL_REQUEST });
const response = await services.setting.getSettings();
return dispatch({ type: OPTIONS_GETALL_SUCCESS, payload: response });
} catch (e) {
return dispatch({ type: OPTIONS_GETALL_FAILURE, error: e });
}
};
мой редуктор
export const optionsReducer = (
state = initialState,
action: OptionsActionTypes
): OptionsState => {
switch (action.type) {
case OPTIONS_GETALL_SUCCESS:
return {
...state,
data: action.payload,
isLoading: false
};
case OPTIONS_GETALL_REQUEST:
return {
...state,
isLoading: true
};
case OPTIONS_GETALL_FAILURE:
return {
...state,
isLoading: true
};
default:
return state;
}
};