Reactjs ID为的URL未由React路由器处理

Reactjs ID为的URL未由React路由器处理,reactjs,react-router,react-router-v4,react-router-dom,Reactjs,React Router,React Router V4,React Router Dom,我在我的ReactJs应用程序中使用React-Routerv4,看起来每当我有一个带有ID的路径时,React-Router都不会处理它,因为我看到页面正在刷新,并且在这个过程中我会丢失Redux存储中的所有数据 这是我的路线部分: <Switch> <Route exact path="/member" component={Home} /> <Route exact path="/member/accounts" component={Accoun

我在我的
ReactJs
应用程序中使用
React-Router
v4,看起来每当我有一个带有ID的路径时,
React-Router
都不会处理它,因为我看到页面正在刷新,并且在这个过程中我会丢失
Redux
存储中的所有数据

这是我的路线部分:

<Switch>
   <Route exact path="/member" component={Home} />
   <Route exact path="/member/accounts" component={Accounts} />
   <Route path="/member/projects/profile/:id" component={ProjectProfile} />
</Switch>

下面是我如何生成链接的。这是当用户单击时的链接,我在浏览器上看到刷新

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

... omitted for brevity
const profileUrl = "/member/projects/profile/" + project.id;

<Link to={profileUrl}>Click here</Link>
从'react router dom'导入{Link};
... 为简洁起见省略
const profileUrl=“/member/projects/profile/”+project.id;
点击这里
“我的路线”中定义的其他链接工作正常,例如主页和帐户


我在这里做错了什么?

是否将
onClick
事件处理程序传递给
链接
组件

如果是这样,请确保处理程序一切正常。您可以尝试暂时删除它,以便调试刷新

学分:


  • 经过大量测试,我找到了原因。无论何时链接到组件,我们都必须使用
    NavLink
    Link
    中的
    react router dom

    我注意到我在应用程序中使用
    NavLink
    时不一致。相反,我用的是普通的


    一旦我切换到使用
    NavLink
    ,它就可以正常工作。

    问题不在于路由器配置。页面不应刷新。这不是路由器的行为。当您试图更改路由时,是否提交了任何表单?不,这个特定的组件只是呈现一个项目列表,我所做的就是用这些代码生成它们的URL。这是在一个非常简单的表示组件中。您在控制台中是否收到任何错误?没有错误。控制台也会刷新,因为从技术上讲,我将获得一个新页面。我正在尝试在刷新之前捕获任何可能的错误,但没有看到任何错误。刷新后,没有错误。是否可以发布
    ProjectProfile
    组件?完全没有事件处理程序。我发布的代码几乎是实际组件中的所有代码。这是一个非常简单的组件。有趣的是,我在其他地方也有类似的方法,我得到了同样的行为。因此,只要路径中有ID,页面就会刷新。