Я обертываю свой компонент Home в следующем макете:
export const DataContext = React.createContext({});
const Layout: React.FunctionComponent = (props) => {
const data = {title: "abc", description: "def"};
return (
<DataContext.Provider value={data}>
{props.children}
</DataContext.Provider>
);
};
Я хотел бы использовать хук useContext в моем компоненте Home, но он возвращает пустой объект:
const Home: React.FunctionComponent = () => {
const content = React.useContext(DataContext);
return (
<Layout>
// content data goes here
</Layout>
);
};
Я подозревал, что это потому, что я определяю переменную контекста вне оболочки Layout, которая содержит провайдер контекста, поэтому она возвращается к значению по умолчанию определенного мной контекста (пустой объект).Однако, даже если я консоль регистрирую хук useContext внутри провайдера макета, он также возвращает пустой объект:
const Home: React.FunctionComponent = () => {
const content = React.useContext(DataContext);
return (
<Layout>
{console.log(React.useContext(DataContext))}
</Layout>
);
};
Есть идеи почему?