Попытка использовать пользовательский перехватчик приводит к ошибке «Переменная с ограниченным объемом блока 'X' использовалась до ее объявления». - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь написать свой первый пользовательский хук.

Я не понимаю, почему отображается ошибка, поскольку функция объявлена ​​несколькими строками выше, где она вызывается.

Соответствующий код:

function getNextAnswerState(answer: string) {
  switch (answer) {
    case "blank":
      return ("correct");
    case "correct":
      return ("wrong");
    case "wrong":
      return ("forgotten");
    case "forgotten":
      return ("blank");
  }
  return "blank";
}

function useAnswerState() {
  const [answer, setAnswer] = useState("blank");

  const handleGetNextCellStatus = () => {
    let nextCellStatus = getNextAnswerState(answer)
    setAnswer(nextCellStatus);
  }

  return {answer, handleGetNextCellStatus};
}

interface letterProps {
  cellIndex: number,
  layerSize: number,
  letter: string
}

function LetterCell({cellIndex, layerSize, letter}: letterProps) {
  const {answerStatus, setAnswerToNext} = useAnswerState();
  ...

Ошибки:

[tsserver 2448] [E] Блочная переменная useAnswerState, использованная перед ее объявлением.

[tsserver 2454] [E] Переменная useAnswerState используется перед назначением.

1 Ответ

0 голосов
/ 06 мая 2020

Похоже, где-то была небольшая синтаксическая ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...