大家好,我刚开始使用React时遇到了这个问题,这是我的Navbar组件:
import { BrowserRouter as NavLink } from "react-router-dom";
const Navbar = () => {
return (
<>
<NavLink as={NavLink} exact to="/">
Hello
</NavLink>
</>
);
};
export default Navbar;
这是我App.js:
import "./App.css";
import { BrowserRouter as Router, Routes, Route } from "react-router-dom";
import Navbar from "./Components/Navbar";
const App = () => {
return <Navbar />;
};
export default App;
当我运行代码时,会发生以下情况:
React App running on chrome
此外,链接是不可点击的,也没有像使用一个简单的标记时的下划线,更糟糕的是,如果我改变我的Navbar.js中的import语句:
import { BrowserRouter as NavLink } from "react-router-dom";
至
import { NavLink } from "react-router-dom";
一切都是空白:
React app running on Chrome
我的React路由器域的版本是“^6.3.0”
请帮助我看了不同的文章,我不能想出一个解决方案
7条答案
按热度按时间mmvthczy1#
在v6+中,关键字“exact”和“strict”在NavLink上不再起作用,而是使用“end”
您不会将BrowserRouter用作导航链接,但
或
https://v5.reactrouter.com/web/api/BrowserRouter
50few1ms2#
第二天,这个问题又出现了,迎接我的又是一页空白。
这是我这次让它永远工作的方法。
经过大量的研究文章和反复试验,我找到了一个简单的解决方案。而且我认为这也会帮助其他人。
我刚刚在app.js中更改了import语句:
至
这修复了空白屏幕的问题。
App.js:
另外,为了显示来自其他组件的文本,我使用了 element:
代替 * 组件 *:
eiee3dmh3#
让我向您解释一下react-router是如何工作的。您需要两个组件:路由器,它将根据您拥有的路径显示您需要的组件,以及导航栏,它将更改该路径。
让我们从路由器组件BrowserRouter开始。这是docs中的一个示例。在这里,您可以根据路径定义路由器在页面上显示的组件:
现在,您需要一种导航到这些路线的方法。为此,您可以使用Link(也可以使用NavLink):
基本上,你的错误在于你要么有一个,要么有另一个,而不是同时有两个。你需要两个都工作。
xienkqul4#
大家好,我已经找到了解决我的问题的方法。
我只是简单地将Node和NPM更新到最新版本,这似乎解决了黑屏问题。
对于npm,我只输入了命令:
接下来,我下载并安装了node.js的LTS版本,网址是:
感谢大家的贡献,再见
5gfr0r5j5#
对于其他有这个问题的人来说,真实的的解决办法是你的NavBar组件应该像这样嵌套在你的BrowserRouter中:
t98cgbkg6#
**从“react”导入React;**将以上行添加到文件导航栏组件中,则此问题已解决
eni9jsuy7#
对我来说,通过观察我的问题,解决方案是把导航栏里面。如果导航栏是外面的浏览器路由器,这导致空白页面没有任何警告的问题。
这是正确的解决方案:
这是Navbar和BrowserRouter的错误用法: