Ang*_*gad 2 reactjs react-router
我是 React 的新手,正在尝试使用嵌套路由创建布局。这是我的场景
在浏览器中访问 URL 时,登录页面和仪表板页面会正确加载,但对于 /dashboard/profile,浏览器会转到空白页面,而不是将其加载到仪表板组件中。
索引.js
ReactDOM.render(
    <BrowserRouter>
        <App />
    </BrowserRouter>, 
    document.getElementById('root'));
Run Code Online (Sandbox Code Playgroud)
应用程序.js
class App extends Component {
  render() {
    return (
      <div>
        {/* <Switch> */}
          <Route exact path='/' component={SignIn}/>
          <Route exact path='/dashboard' component={Dashboard}/>
        {/* </Switch> */}
      </div>
    );
  }
}
export default App;
Run Code Online (Sandbox Code Playgroud)
仪表板.js
class Dashboard extends React.Component {
  render() {
    const { classes } = this.props;
return (
  <React.Fragment>
    <CssBaseline />
    <div className={classes.root}>
      <Header classes={classes} open={this.state.open} click={this.handleDrawerOpen} />
      <Sidebar classes={classes} open={this.state.open} click={this.handleDrawerClose} />
      <main className={classes.content}>
        <div className={classes.appBarSpacer} />           
        *********I expect profile component to load here 
but when I access the URL /dashboard/profile I get a new blank page*********
        Route path="/dashboard/profile" exact component={Profile} />
      </main>
    </div>
  </React.Fragment>
);
  }
}
Run Code Online (Sandbox Code Playgroud)
    在执行子路由时,您需要exact从仪表板路由(存在于Switch)中移除道具。  
这是您的用例的最小实现:
import React, { Component } from "react";
import "./styles.css";
import {
  NavLink,
  Redirect,
  Route,
  BrowserRouter as Router,
  Switch
} from "react-router-dom";
const App = () => (
  <Router>
    <div className="App">
      <ul>
        <li>
          <NavLink to="/login">Login</NavLink>
        </li>
        <li>
          <NavLink to="/dashboard">Dashboard</NavLink>
        </li>
      </ul>
      <Switch>
        <Route exact path="/login" component={Login} />
        <Route path="/dashboard" component={Dashboard} />
      </Switch>
    </div>
  </Router>
);
const Login = () => <span>Login Page</span>;
const Dashboard = () => {
  return (
    <div>
      <div>Dashboard Page</div>
      <NavLink to="/dashboard/profile">Go to profile</NavLink>
      <div>
        <Route exact path="/dashboard/profile" component={Profile} />
      </div>
    </div>
  );
};
const Profile = () => {
  return <span>Profile Page</span>;
};
export default App;  
Run Code Online (Sandbox Code Playgroud)
您可以在此处找到工作示例:https : //codesandbox.io/s/z3py3672v3
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           1380 次  |  
        
|   最近记录:  |