为什么我的 React Router return 空白页面?

Why does my React Router return blank pages?

我正在使用最新版本的 create-react-app。我搜索了所有教程并尝试了几个包含不同教程的网站,但我没有收到错误。

我正在尝试 return 我的应用程序中的页面。我已经完成了功能组件和基于 class 的组件,但没有看。我试过在 return 中包装,但它不会呈现。所有应用程序都可以运行,但页面内容不显示:(

About.js和Home.js是一样的:

import React from 'react';

const About = () => (
  <div>
    <h2>About</h2>
  </div>
);

export default About;

Nav.js 很简单:

import React from 'react';
import { BrowserRouter as Router, Route, NavLink } from "react-router-dom";
import './css/Nav.css';

const Nav = () => (
    <ul>
        <li>
            <NavLink
                activeClassName="active"
                to="/">Home</NavLink>
        </li>
        <li>
            <NavLink
                activeClassName="active"
                to="/about">Admin</NavLink>
        </li>
    </ul>
);

export default Nav;

最后 index.js

    import React, { Component } from 'react';
    import ReactDOM from 'react-dom';
    import {
      BrowserRouter as Router,
      Route,
      Switch
    } from "react-router-dom";
    import registerServiceWorker from './misc';

    // COMPONENTS
    import Nav from './nav/Nav';

    // PAGE COMPONENTS
    import Home from './pages/Home';
    import About from './pages/About';
    import Page404 from './pages/404';

    // CSS
    import './css/Index.css';

    // CONSTRUCT
    class SmartApartmentApp extends Component {
      render() {
        return (
          <Router>
            <div className="App">
                <Nav />
                <Switch>
                  <Route exact path="/" Component={Home} />
                  <Route path="/about" Component={About} />
                  <Route component={Page404} />
                </Switch>
                <Footer />
            </div>
          </Router>
        );
      }
    }

    // EXECUTE
    export default SmartApartmentApp;
    ReactDOM.render(<SmartApartmentApp />, document.getElementById('root'));
    registerServiceWorker()

;

这个问题是因为使用了错误的道具名称 Component!

要在 Route 组件中解决此问题,请使用小写字母 c 传递 component 道具,而不是使用大写字母 C.

Component

示例:

<Route path="/about" component={About} />

使用 component 属性 代替 Component.