为什么我的 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.
我正在使用最新版本的 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.