Я пытаюсь написать свой первый пользовательский хук.
Я не понимаю, почему отображается ошибка, поскольку функция объявлена несколькими строками выше, где она вызывается.
Соответствующий код:
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 используется перед назначением.