javascript - NavLink 组件不允许网站渲染并显示其中所有元素的奇怪错误

标签 javascript reactjs react-router-dom create-react-app react-router-component

Navbar.jsx 代码:

import React from "react"
import {NavLink} from "react-router-dom";
const Navbar = ()=>{
   return(
<>
    <div className="container-fluid nav_bg">
      <div className="row">
        <div className="col-10 ms-auto ">

      <nav className="navbar sticky-top navbar-expand-lg transparent" id="nav1">
      <NavLink className="brand-name " style={{color:"white"}} href="/">Shriharsh's Colosseum</NavLink>
      <button className="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
        <span className="navbar-toggler-icon"></span>
      </button>
    
      <div className="collapse navbar-collapse" id="navbarSupportedContent">
        <ul className="navbar-nav ms-auto brand-desc text-uppercase">
          <li className="nav-item active">
            <a className="nav-link white-sucker" href="/">Home</a>
          </li>
          <li className="nav-item">
            <a className="nav-link white-sucker"   href="/projects">Projects</a>
          </li>
          <li className="nav-item">
            <a className="nav-link white-sucker"  href="/contact">Contact</a>
   </li>
        </ul>
      </div>
    </nav>

        </div>
      </div>
    </div>
   </>
   );
};

export default Navbar;

错误:

The above error occurred in the <NavLink> component:

    at NavLinkWithRef (http://localhost:3000/static/js/bundle.js:43638:23)
    at nav
    at div
    at div
    at div
    at Navbar
    at App

Consider adding an error boundary to your tree to customize error handling behavior.
Visit https://reactjs.org/link/error-boundaries to learn more about error boundaries.

App.jsx 代码:

import "./../node_modules/bootstrap/dist/css/bootstrap.min.css";
import "./../node_modules/bootstrap/dist/js/bootstrap.bundle";
import React from "react";
import Projects from "./Projects";
import Contact from "./Contact";
import {Route} from "react-router-dom";
import Home from "./Home";
import Navbar from "./Navbar";
import {Routes,BrowserRouter as Router} from "react-router-dom";


const App = () => {
    return(
        <>
            <style>{'body { background-color: black; }'}</style>
                <Navbar/>
                <Router>
                    <Routes>
                        <Route exact path="/" element={<Home />}/>
                        <Route exact path="/contact" element = { <Contact />}/>
                        <Route exact path="/projects" element = { <Projects/>}/>
                    </Routes>
                </Router>
        </>
    );

};
export default App;

应用程序组件呈现导航栏,而导航栏应该呈现带有可点击链接的导航栏,这些链接将我引导到不同的页面(/联系人、/项目等)。

我之前在组件中有一些样式属性,然后我删除了这些属性,认为这可能是原因,但事实并非如此。当使用 <a> 运行时,此代码似乎工作正常。标签和 href 属性。

解决方案:

它的工作方式是我必须将 NavLink 包装为:

 <Router>
     <NavLink to="/"></NavLink>
     <NavLink to="/yadada"></NavLink>
      <NavLink to="/yadada"></NavLink>
</Router>````

最佳答案

Navlink 组件应该位于 Router 内部

关于javascript - NavLink 组件不允许网站渲染并显示其中所有元素的奇怪错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74888187/

相关文章:

javascript - 如果浏览器是一定大小,删除 jQuery 效果?

javascript - 如何知道是否加载了 div 背景图像

reactjs - react 网格布局html不更新列

reactjs - 在React中使用requestAnimationFrame

javascript - 使用 react 路由器的链接编码 Uri 不起作用

reactjs - React-router-dom,如何跳过后退按钮

javascript - 我创建了一个非常简单的 Tic Tac Toe 游戏,我在使用 jquery 进行索引和获胜检查时遇到了问题

javascript - 在第一个子 <div> 之后使用 <div> 标签包装内容

reactjs - 在 "exportPathMap"中找不到 "next.config.js"。从 "./pages"生成 map

reactjs - 静态网站托管在 s3 : pages return 404 after refresh