Ошибка ссылки: не удается получить доступ к ‘x’ перед инициализацией в React hook

#reactjs #react-hooks

#reactjs #react-hooks

Вопрос:

У меня возникли некоторые проблемы с фрагментом кода в React.

Я создал репозиторий gh, который воспроизводит ошибку: https://github.com/AnatoleLucet/next-issue

Я пытаюсь сделать перехват, который получает некоторые локальные данные (в моем реальном приложении это система перевода, но вы поняли идею). Дело в том, что я передаю каждую «часть» своих данных (см. data/myData.ts И data/index.ts ) в вызываемой функции formatData , эта функция объявлена в том же файле, что и мой hook ( hooks/myHook.ts ) . Затем, когда я использую свой хук в компоненте (см. pages/index.tsx ), я получаю следующую ошибку :

Я не понимаю, почему браузер (или webpack?) Не инициализируется formatData в нужное время…

Я использую Nextjs, но я не думаю, что это связано с проблемой, хотя я не пробовал использовать «ванильный» проект React.

В качестве временного исправления я могу перейти formatData к другому файлу, например utils/data.ts .

Ответ №1:

У вас циклическая зависимость.

  • hooks/myHook.ts импортирует из data/index.ts
  • data/index.ts импортирует из data/myData.ts
  • data/myData.ts импортирует из hooks/myHook.ts

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

1. Действительно. Поэтому я должен переосмыслить свой дизайн. Спасибо