Я использую избыточность с React для управления состояниями, но когда я вызвал две функции отправки из одного создателя действия, это возвращало состояние из первой отправки, но не смог получить обновленное состояние после другого вызова диспетчеризации.
Я пытался вызвать диспетчеризацию из разных редукторов и пытался вызвать после вызова API.
Вот мои действия.
export const setLoader = (loader) => dispatch => {
dispatch({ type: SET_LOADER, payload: loader });
};
export const fetchCategory = (setLoader) => async dispatch => {
setLoader(true);
try {
const instance = axios.create();
instance.defaults.headers.common['Authorization'] = AUTHORIZATION_TOKEN;
const response = await instance.get(API_PATHS.SERVICE_CATEGORY_API);
dispatch({ type: FETCH_CATEGORY, payload: response.data });
} catch (e) {
setLoader(false);
}
};
Здесь я определил редукторы:
export default (state = INITIAL_STATE, action) => {
switch (action.type) {
case FETCH_CATEGORY:
return { ...state, categoryList: action.payload };
case SET_LOADER:
return { ...state, isLoading: action.payload };
default:
return state;
}
};
Вот мой компонент, связанный с приставкой:
const mapStateToProps = state => {
return ({
categoryList: state.locator.categoryList
});
}
export default connect(
mapStateToProps,
{ fetchCategory, setLoader }
)(ServiceLocator);
Я ожидаю, что выходные данные вернут обновленный categoryList, но фактические данные возвращают пустой массив.