gpt4 book ai didi

reactjs - 将 Bootstrap 导航栏与 nextjs 正确链接

转载 作者:行者123 更新时间:2023-12-03 14:30:41 29 4
gpt4 key购买 nike

嘿,我花了几个小时才用 Nextjs 设置基本的 Bootstrap 导航栏。

而且我还认为除了显示的错误消息之外我还有其他问题。

还请让我知道如何整体上做得更好!我应该使用 _app.js 而不是布局吗?

Pages/index.js

import Layout from "../components/Layout";

class Page extends React.Component {
render() {
return (
<Layout>
<div className="container">
<div className="starter text-center">
<h1>Bootstrap starter template</h1>
<p className="lead">
Use this document as a way to quickly start any new project.
<br /> All you get is this text and a mostly barebones HTML
document.
</p>
</div>
</div>
</Layout>
);
}
}

export default Page;

the About Page looks pretty much the same

components/Header.js

import Link from "next/link";

class Header extends React.Component {
render() {
return (
<header>
<nav className="navbar navbar-expand-md navbar-dark bg-dark">
<a className="navbar-brand" href="/">
Home
</a>
<button
className="navbar-toggler"
type="button"
data-toggle="collapse"
data-target="#navbarsExampleDefault"
aria-controls="navbarsExampleDefault"
aria-expanded="false"
aria-label="Toggle navigation"
>
<span className="navbar-toggler-icon" />
</button>

<div className="collapse navbar-collapse" id="navbarsExampleDefault">
<ul className="navbar-nav mr-auto">
<li className="nav-item active">
<div>
<Link href="/about">
{" "}
<a className="nav-link">About</a>{" "}
</Link>
</div>
</li>
</ul>
</div>
</nav>
</header>
);
}
}

export default Header;

components/Layout.js

import Head from 'next/head'
import Header from './Header'
import Footer from './Footer'

import bootstrapStyle from 'bootstrap/dist/css/bootstrap.css'
import fontawesomeStyle from 'font-awesome/css/font-awesome.css'
import stylesheet from 'styles/index.scss'

const Layout = ({ children, title }) => (
<div>
<Head>
<title>{ title }</title>
<meta charSet='utf-8' />
<meta name='viewport' content='initial-scale=1.0, width=device-width' />
<style dangerouslySetInnerHTML={{ __html: bootstrapStyle }} />
<style dangerouslySetInnerHTML={{ __html: fontawesomeStyle }} />
<style dangerouslySetInnerHTML={{ __html: stylesheet }} />
</Head>
<Header />

{ children }

<Footer />
</div>
)

export default Layout

React.Children.only expected to receive a single React element child.

最佳答案

我将 React Bootstrap ( https://react-bootstrap.github.io/ ) 与 nextjs 一起使用,它节省了很多工作。我已将导航栏放在 _app.js 中以避免重复代码。如果您使用 nextjs 路由器(就像我一样),那么您需要像这样包装每个 Nav.Link 项目:

        <Link href="/index" passHref>
<Nav.Link>Home</Nav.Link>
</Link>

关于reactjs - 将 Bootstrap 导航栏与 nextjs 正确链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57564244/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com