【发布时间】:2021-07-03 20:30:07
【问题描述】:
我是否可以只为特定路由添加提供程序,而不是在下一个 js 中转到我的整个应用程序?
我的上下文文件 [server.jsx]
import { createContext, useState } from 'react';
const ServerContext = createContext({});
export const ServerProvider = ({ children }) => {
const [ data, setData] = useState(null);
return (
<ServerContext.Provider value={{ data, setData }}>
{children}
</ServerContext.Provider>
);
};
export default ServerContext;
我不想将其传递给整个应用程序,而是将其传递给我的仪表板路由
[_app.jsx]
import { Provider } from 'next-auth/client';
import { ThemeProvider } from 'styled-components';
import GlobalStyles from '@/styles/global';
import theme from '@/styles/theme';
import { ServerProvider } from '@/contexts/server';
function MyApp({ Component, pageProps })
{
return (
<ThemeProvider theme={theme}>
<Provider session={pageProps.session} >
<ServerProvider>
<Component {...pageProps} />
<GlobalStyles />
</ServerProvider>
</Provider>
</ThemeProvider>
);
}
export default MyApp;
【问题讨论】:
-
您使用路由作为
pages文件夹中的文件,对吗?我认为在那里你可以为你的页面创建一个包装器并使用上下文。 -
@JorgeKunrath,这对我来说看起来不错,你能解释一下吗?打扰了
标签: reactjs next.js react-context