javascript 单击链接时,React Router不会刷新页面

but5z9lq  于 2023-01-16  发布在  Java
关注(0)|答案(1)|浏览(128)

在React中,当单击<Link>元素时,react-router-dom不会刷新页面。
具体来说,在制作如下链接时(Button元素只是一个带样式的按钮,代码已经简化):

import { Route, Routes, Link } from "react-router-dom";
import Stats from "./pages/Stats";

<div className="pt-5 pl-24">
  <Button orange>
    <Link to="/stats">Start Taking Stats</Link>
  </Button>
</div>

<Routes>
  <Route path="/stats" element={<Stats />} />
</Routes>

看看其他论坛,它说添加一个onClick来刷新页面,如下所示:

<Link to="/stats" onClick={() => window.location.reload()}>
  Start Taking Stats
</Link>

然而,这并不起作用,因为当点击按钮时,页面刷新而不改变内容。地址栏改变几毫秒,但随后立即返回到原始路径。
此警告也显示在主页上。

No routes matched location "/"

Stats.jsx文件位于<project root>/src/pages/Stats.jsx。其内容如下。

function Stats() {
  return (
    <>
      <h1>Hello</h1>
      <p>world</p>
    </>
  );
}

export default Stats;

有没有什么要做的任何文件,或安装任何包,让这个工作?

e5nqia27

e5nqia271#

这可能是因为您尚未定义属于/home路由,也可能是因为您缺少exact。请删除onClick方法。
请尝试以下操作之一:

<Route path="/stats" exact element={<Stats />} />
<Route path={"/"} exact element={<Home />} />
 <Route path="/stats" element={<Stats />} />

相关问题