Javascript 类组件中的ReactJs嵌套路由开关

Javascript 类组件中的ReactJs嵌套路由开关,javascript,reactjs,react-router,react-router-dom,Javascript,Reactjs,React Router,React Router Dom,我有两个部分, 应用程序和仪表板 应用程序组件是主要组件,在应用程序内部,有一个到仪表板组件的开关 我需要嵌套的路由,在仪表板组件内部,我需要有“/Dashboard/blogs”,在其中切换blogs组件。 我在这里分享这两个部分 import React, { Component } from "react"; import {BrowserRouter as Router, Route, Switch} from "react-router-dom"

我有两个部分, 应用程序和仪表板

应用程序组件是主要组件,在应用程序内部,有一个到仪表板组件的开关 我需要嵌套的路由,在仪表板组件内部,我需要有“/Dashboard/blogs”,在其中切换blogs组件。 我在这里分享这两个部分

import React, { Component } from "react";
import {BrowserRouter as Router, Route, Switch} from "react-router-dom";
import Signup from "./pages/Signup";
import Login from "./pages/Login";
import Home from "./pages/Home";
import Dashboard from "./dashboard/Dashboard";

class App extends Component {
  render() {
    return (
        <div id="content-wrapper">
          <Router>
            <Switch>
              <Route exact path="/signup" component={Signup}/>
              <Route exact path="/login" component={Login}/>
              <Route exact path="/" component={Home}/>
              <Route exact path="/dashboard" component={Dashboard}/>
            </Switch>
          </Router>
        </div>
    );
  }
}

export default App;
import React,{Component}来自“React”;
从“react Router dom”导入{BrowserRouter as Router,Route,Switch};
从“/pages/Signup”导入注册;
从“/pages/Login”导入登录名;
从“/pages/Home”导入主页;
从“/Dashboard/Dashboard”导入仪表板;
类应用程序扩展组件{
render(){
返回(
);
}
}
导出默认应用程序;
import React,{Component}来自'React';
从“/Navbar”导入导航栏;
从“/SideBar”导入侧栏;
导入“./脚本/仪表板”;
从“/components/BlogList”导入{BlogList};
从“react Router dom”导入{BrowserRouter as Router,Route,Switch};
从“/components/DashBoardHome”导入{DashBoardHome};
类仪表板扩展组件{
render()
{
返回(
//这不管用吗?
)
}
}
导出默认仪表板;

提前谢谢

问题在于
exact
关键字

<Route exact path="/dashboard" component={Dashboard}/>

使用此代码段,您基本上会说,仅当URL地址正好为“../Dashboard”时,才应呈现仪表板组件


通过这个代码片段,您可以说,
BlogList
组件应该仅在URL正好为“../dashboard/blogs/”时才呈现,但它是在
dashboard
组件内部呈现的,因为URL不是“../dashboard”

中删除
exact
关键字应该可以修复您的代码

<Route exact path="/dashboard" component={Dashboard}/>
<Route path={`${this.props.match.url}/blogs`} exact={true} component={BlogList} />