import Footer from "./Footer";
import Navigation from "./Navigation";
import { useRouter } from "next/router";
function Layout({ children }) {
const router = useRouter();
return (
<>
{router.pathname !== "/*" && <Navigation />}
{/* {router.pathname !== "*" && <Navigation />} */}
<main className="main-content">{children}</main>
{router.pathname !== "/*" && <Footer />}
{/* {router.pathname !== "*" && <Footer />} */}
</>
);
}
export default Layout;
不幸的是,带星号的方法不起作用:/?!?
提前感谢并向大家致以最良好的问候;- )
2条答案
按热度按时间qlvxas9a1#
如果您没有使用自定义404页面,则默认
router.pathname
为_error
,因此应该行得通。
如果您使用的是自定义404页面(404.js在
/pages
中),则router.pathname
是/404
。如果您在页面或组件中重用内置的错误页面
router.pathname
,则router.pathname
将是当前页面路径。例如:
在这种情况下,上面提到的两种方法都不起作用。
但是我不推荐使用这种方法。
5t7ly7z52#
我决定添加这段代码来服务其他遇到同样问题的人。在我的例子中,当我们有自定义404页面时,解决方案看起来像这样=〉