【问题标题】:<Route path="" component = {}/> doesn't show the component in react<Route path="" component = {}/> 没有在反应中显示组件
【发布时间】:2020-01-28 23:31:26
【问题描述】:

我在我的 react 应用程序中使用 Router 组件在单击导航栏时显示不同的组件。但是,当我单击导航栏中的链接时,地址会显示路径,但是当路径等于该地址时我调用的组件现在显示在页面中。

这是我的 App.js

import React, { Component } from "react";
import ReactDOM from "react-dom";
import { Route, BrowserRouter as Router, Switch } from "react-router-dom";
import NavBar from "./Components/navBar";
import Header from "./Components/ddrHeader";
import Home from "./Components/home";
import Plan from "./Components/plan";
import Waiting from "./Components/waiting";
import "./App.css";

class App extends Component {
  render() {
    return (
      <Router>
        <React.Fragment>
          <NavBar />
          <Switch>
            <Route exact path="/" Component={Home} />
            <Route path="/ddr" Component={Header} />
            <Route path="/plan" Component={Plan} />
            <Route path="/waiting" Component={Waiting} />
          </Switch>
        </React.Fragment>
      </Router>
    );
  }
}

export default App;


这是我的 index.js

import React, { Component } from "react";
import ReactDOM from "react-dom";
import { BrowserRouter as Router } from "react-router-dom";
import * as serviceWorker from "./serviceWorker";
// import DDR from './Components/ddr';
import App from "./App";

ReactDOM.render(
  <Router>
    <App />
  </Router>,
  document.getElementById("root")
);
serviceWorker.register();
这是我的导航栏:

import React, { Component } from "react";
import { Link, BrowserRouter as Router } from "react-router-dom";
import "bootstrap/dist/css/bootstrap.css";

class NavBar extends Component {
  render() {
    return (
        <nav class="navbar navbar-expand-lg navbar-dark bg-primary">
          <ul class="navbar-nav">
            <li class="nav-item active">
              <Link className="nav-link" to="/">
                Home<span class="sr-only">(current)</span>
              </Link>
            </li>
            <li class="nav-item">
              <Link className="nav-link" to="/ddr">
                DDR
              </Link>
            </li>
            <li class="nav-item">
              <Link className="nav-link" to="/plan">
                Plan
              </Link>
            </li>
            <li class="nav-item">
              <Link className="nav-link" to="/waiting">
                Waiting
              </Link>
            </li>
          </ul>
        </nav>
    );
  }
}

export default NavBar;

【问题讨论】:

  • Navbar 中再次使用Router 的任何原因。它已经在 app.js 的路由器内部了!
  • @Panther,只是一个错误。我省略了导航栏中的那个。但问题存在。
  • 你能用codesandbox.io设置你的项目吗?
  • @jdn ,这是一个快速示例:codesandbox.io/embed/react-router-sample-3prg3

标签: reactjs routes


【解决方案1】:

作为react-router(component prop)。 prop Component 错误,应该是 component

<Switch>
   // <Route exact path="/" Component={Home} /> // wrong
   <Route exact path="/" component={Home} /> //correct
</Switch>

【讨论】:

    猜你喜欢
    • 2019-06-12
    • 1970-01-01
    • 2020-04-08
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 1970-01-01
    • 2019-05-27
    • 1970-01-01
    相关资源
    最近更新 更多