如何在next.js中禁用动态路由中的导航栏组件?

dced5bon  于 2023-03-22  发布在  其他
关注(0)|答案(1)|浏览(160)

我知道这样做的一种方法是通过使用下一个路由器,但只有在情况下,当路由是静态的,如/dashboard' .但如何做到这一点时,URL是动态的,如'/story/[slug]' .

Layout.js

const Layout=({children })=>{
   if(router.pathname != '/dashboard')

return(
<>
{children()}
</>
)
else{
return(
<>
<Navbar/>
{children()}
</>
)
}
}
export default Layout;

这是可行的,但是我需要在/story下的所有动态路由中实现它,而不是/dashboard,比如/story/[slug]
先谢了

368yc8dk

368yc8dk1#

我会使用一个简单的JavaScript方法:包括。

const App = ({ Component, pageProps }) => {
  const router = useRouter();
  const withoutLayoutArray = [
    'story'
  ];

  const isWithoutLayout = withoutLayoutArray.includes(router.pathname);

  return isWithoutLayout ? (
    <Provider store={store}>
      <Component {...pageProps} />
    </Provider>
  ) : (
    <Provider store={store}>
      <NavBar>
        <Component {...pageProps} />
      </NavBar>
    </Provider>
  );
})

相关问题