реагировать на недопустимый вызов крючка, хотя вызов крючка находится в теле функции?

#reactjs

Вопрос:

 Unhandled Rejection (Error): Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
 

Я не понимаю, почему я нарушаю правила.
На этом этапе должен быть разрешен вызов соединения.
Может кто-нибудь сказать мне, почему звонок не принимается?

 export const createMail =
  (values: ValuesType): AppThunk =>
  async (dispatch, getState) => {
    const state = getState();
    const { t } = useTranslation(["emails", "translation"]);
 

Комментарии:

1. createMail не является компонентом или пользовательским крючком

Ответ №1:

Это происходит по второй причине, указанной в ошибке. Вы можете использовать только крючки реакции ( useStates и ... ) внутри ФУНКЦИОНАЛЬНОГО КОМПОНЕНТА. То, что у вас здесь есть, не только не является функциональным компонентом (из-за camelCase), но вы используете useState внутри другой функции, которая возвращается ранее упомянутой.