chazovs
@chazovs
Корпорация Центр

Как обратиться к контексту, у которого нет имени?

Пытаясь изучить тему хуков, столкнулся с непониманием. Когда я использовал hoc, то объявлял контекст так:

const {
    Provider: CompaniesStoreServiceProvider,
    Consumer: CompaniesStoreServiceConsumer
      } = React.createContext();


А во всех примерах с хуками я вижу, что контекст объявляют как const myContext = React.createContext();

и потом обращаются к нему useContext('myContext');

Могу ли я, не изменяя своего способа создания контекста, обращаться к нему через хук useContext?
  • Вопрос задан
  • 49 просмотров
Решения вопроса 1
@ned4ded
Верстка, Фронтенд
Нет, нельзя.

В useContext() нужно передавать ссылку на объект контекста, которую вы не сохранили. В js к необъявленным объектам невозможно получить доступ. Более того, как только ссылка на объект не используется, сам объект удаляется garbage collector'ом.

const MyContext = React.createContext();

const {
    Provider: CompaniesStoreServiceProvider,
    Consumer: CompaniesStoreServiceConsumer
} = MyContext;

useContext(MyContext);


Как вариант, вы можете сделать хелпер/декортатор, который будет создавать контекст и возвращать объект, содержащий ссылку на контекст, провайдер и консьюмер; деструктурировать уже его.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Dasslier
FrontEnd Developer
Экспортируйте переменные CompaniesStoreServiceProvider, CompaniesStoreServiceConsumer. Оборачиваешь приложение в Provider, затем где нужно обратиться оборачивай в Consumer и доставай данные из пропсов
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы