Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有办法不使用React路由器重新加载整个html正文?_Javascript_Html_Reactjs_React Router Dom_React Bootstrap - Fatal编程技术网

Javascript 有没有办法不使用React路由器重新加载整个html正文?

Javascript 有没有办法不使用React路由器重新加载整个html正文?,javascript,html,reactjs,react-router-dom,react-bootstrap,Javascript,Html,Reactjs,React Router Dom,React Bootstrap,我的React项目的App.js文件有如下路径: <div> <Background /> <Navbarr /> <Switch> <Route path="/" component={Home} exact /> <Route path="/news" component={News} />

我的React项目的App.js文件有如下路径:

<div>
        <Background />
        <Navbarr />
        <Switch>
          <Route path="/" component={Home} exact />
          <Route path="/news" component={News} />
          <Route path="/reserve" component={Reserve} />
          <Route path="/admin" component={Admin} />
        </Switch>
</div>

在我的导航栏组件中,我有设置路线的链接,例如:

<Nav.Link
    href="/news"
    name="news"
    active={active === "/news"}
    onClick={() => setActive("/news")} 
>
News
</Nav.Link>
setActive(“/news”)}
>
新闻
当我点击任何一个链接时,我希望它只改变我的页面中的组件。相反,它似乎重新加载了整个html正文(我的背景组件闪烁,尽管它有相同的图片)


有办法做到这一点吗?

您可以使用
react router dom
链接
,并使用
道具而不是
href
来使用客户端路由

import { Link } from "react-router-dom";

<Link
    to="/news"
    name="news"
    active={active === "/news"}
    onClick={() => setActive("/news")} 
>
News
</Link>

这正是我想要的。谢谢
import { Link } from "react-router-dom";

<Nav.Link
  as={Link} // --> render as react-router-dom Link
  to="/news"
  name="news"
  active={active === "/news"}
  onClick={() => setActive("/news")}
>
  News
</Nav.Link>