Javascript React路由器URL有效,但组件无效

Javascript React路由器URL有效,但组件无效,javascript,reactjs,react-router,Javascript,Reactjs,React Router,React Router更改URL,但组件未更新。我检查了StackOverflow的许多解决方案,但仍然不起作用。 这是我的密码: App.js: 函数应用程序(){ 返回( ); } 导出默认应用程序; 侧导航: function Sidebar(){ return( <div className="sidebar-wrapper"> <div className="sidenav&q

React Router更改URL,但组件未更新。我检查了StackOverflow的许多解决方案,但仍然不起作用。 这是我的密码: App.js:

函数应用程序(){
返回(
);
}
导出默认应用程序;
侧导航:

    function Sidebar(){

    return(
        <div className="sidebar-wrapper">
            <div className="sidenav">
                <NavLink to={'/'}>Dashboard</NavLink>
                <NavLink to={'/invoices/1'}>Test1</NavLink>
                <NavLink to={'/invoices/2'}>Test2</NavLink>
                <NavLink to={'/invoices/3'}>Test3</NavLink>
            </div>
        </div>
    );
}
export default Sidebar;
函数侧栏(){
返回(
仪表板
测试1
测试2
测试3
);
}
导出默认边栏;
index.js:

import React from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter } from "react-router-dom";
import './static/index.css';
import App from './App';

ReactDOM.render(
    <React.StrictMode>
        <BrowserRouter>
            <App />
        </BrowserRouter>
    </React.StrictMode>,
  document.getElementById('root')
);
从“React”导入React;
从“react dom”导入react dom;
从“react router dom”导入{BrowserRouter};
导入“/static/index.css”;
从“./App”导入应用程序;
ReactDOM.render(
,
document.getElementById('root'))
);

我对代码的任何其他改进都不太熟悉,也不太开放。

只需通过
exact
prop就可以了

<Switch>
  <Route exact path={'/'} component={withRouter(Dashboard)} />
  <Route exact path={'/invoices/:objectId'} component={withRouter(Table)} />
</Switch>

我从另一篇与此问题相关的帖子中找到了解决我的问题的方法:


我已经在我的表组件中将这些道具作为依赖项传递,现在每当我更改URL参数时,它都会重新加载我的数据。在另一篇文章中还提供了其他更好的处理方法。

当组件已经包装在
路线中时,为什么要将它们包装在
路线中组件?
我看没有理由那样做


请阅读。

这两条路线上的组件似乎是相同的(您没有显示)。首先是的,它没有参数,并且按预期为空。但是,当我尝试跳转其他组件时,它不是重新加载组件。编辑:更改它以清除任何混乱。我尝试过。它加载仪表板,然后加载我单击的第一个导航链接。然后单击其他导航链接时不会更改。但当我点击仪表板时,它又起作用了。@HürkanDoğan你的问题与路由器无关。它与实现
组件的方式有关,该组件在
:objectId
更改通知时不会重新呈现。我阅读了文档并删除了用法。
<Switch>
  <Route exact path={'/'} component={withRouter(Dashboard)} />
  <Route exact path={'/invoices/:objectId'} component={withRouter(Table)} />
</Switch>
    useEffect(() => {
            retrieveInvoices();
        }, [props.match.params.objectId]);