Мой опыт в основном связан с React Hooks & Context, где определены действия и редукторы. Затем действия импортируются в компонент React и вызываются через функцию Dispatch.
В новом проекте я должен использовать React Hooks и Redux. Здесь я использую Action Creators & Reducers. Вот пример Создателя действий, который я создал:
export const fetchCompanies: ActionCreatorThunk = () => {
return function (dispatch, getState) {
dispatch({ type: FETCH_COMPANIES_REQUEST });
requests
.get(
`${requests.API_ROOT()}companies`,
null,
true
)
.then((response) => {
dispatch({ type: FETCH_COMPANIES_SUCCESS, payload: response.data.companies });
})
.catch((error) => {
console.error(error);
dispatch({ type: FETCH_COMPANIES_FAILURE, payload: error.response });
});
};
};
Это прекрасно работает.
Вот моя ситуация: мне нужно действие для создания пустой компании, поэтому нет необходимости создавать Создателя действий. Таким образом, я создал такое действие:
export const INIT_EMPTY_COMPANY: ActionType = 'INIT_EMPTY_COMPANY';
export type InitEmptyCompanyAction = { type: typeof INIT_EMPTY_COMPANY };
С помощью Action Creator я вызывал его из useEffect
следующим образом:
dispatchRedux(fetchCompanies());
Что касается действия, я подумал, что могу вызвать его в стиле, аналогичном тому, как я всегда называл действия с контекстом, например так:
dispatchRedux({ type: InitEmptyServiceFormAction });
К сожалению, я получаю эту ошибку потока: невозможно ссылаться на тип InitEmptyCompanyAction
[1] из позиции значения.
Что я делаю неправильно и как я могу это исправить?