React предоставляет хук useContext для использования контекста, который имеет сигнатуру типа
const context = useContext(Context);
useContext
принимает объект контекста (значение, возвращаемое из
React.createContext) и возвращает текущее значение контекста, как указано
ближайшим поставщиком контекста для данного контекста.
Когда провайдер обновляется, этот хук вызовет повторное рендеринг
последнее значение контекста.
Вы можете использовать его в своем компоненте как
import { ProfileContext } from 'src/shared/ProfileContext'
const Site = () => {
const context = useContext(ProfileContext);
// make use of context values here
}
Однако, если вы хотите использовать один и тот же контекст в каждом компоненте и не хотите импортировать ProfileContext
везде, вы можете просто написать пользовательский хук, такой как
import { ProfileContext } from 'src/shared/ProfileContext'
const useProfileContext = () => {
const context = useContext(ProfileContext);
return context;
}
и используйте его в таких компонентах, как
const Site = () => {
const context = useProfileContext();
}
Однако, что касается создания хука, который разделяет данные между различными компонентами, у хуков есть экземпляр данных для себя, и они не могут делиться ими, если вы не используете Context;