Reactjs 如何将组件传递到除下一个js之外的所有页面
我有一个布局组件,我想将它传递到所有页面,除了Reactjs 如何将组件传递到除下一个js之外的所有页面,reactjs,next.js,Reactjs,Next.js,我有一个布局组件,我想将它传递到所有页面,除了authenticate页面 我尝试过使用Component.name,它适用于开发人员,但不适用于生产版本 我该怎么做 if (Component.name === 'Authenticate') { return ( <Provider store={store}> <Component {...pageProps} /> </Provider> );
authenticate
页面
我尝试过使用Component.name
,它适用于开发人员,但不适用于生产版本
我该怎么做
if (Component.name === 'Authenticate') {
return (
<Provider store={store}>
<Component {...pageProps} />
</Provider>
);
}
return (
<Provider store={store}>
<Authenticate>
<Layout>
<Component {...pageProps} />
</Layout>
</Authenticate>
</Provider>
);
if(Component.name=='Authenticate'){
返回(
);
}
返回(
);
您可以使用useRouter
内部\u app.js
完成此操作(推荐)
谢谢你的帮助:)
import {useRouter} from 'next/router';
function MyApp({ Component, pageProps }) {
const router = useRouter();
const {asPath,route,pathname } = router // pick the one that you need
if(asPath === "Authenticate"){
return (
<Provider store={store}>
<Component {...pageProps} />
</Provider>
)
}else{
return(
<Provider store={store}>
<Authenticate>
<Layout>
<Component {...pageProps} />
</Layout>
</Authenticate>
</Provider>
)
}
}
function MyApp({ Component, pageProps }) {
const {path } = pageProps
if(path === "Authenticate"){
return (
<Provider store={store}>
<Component {...pageProps} />
</Provider>
)
}else{
return(
<Provider store={store}>
<Authenticate>
<Layout>
<Component {...pageProps} />
</Layout>
</Authenticate>
</Provider>
)
}
}
MyApp.getInitialProps = async (appContext) => {
return {pageProps : {
path : appContext.ctx.pathname
}}
}