【发布时间】:2021-12-28 20:15:53
【问题描述】:
使用 react-router-dom 时,我无法渲染任何组件或任何东西。 它所做的只是显示一个白屏,它不会向我的 index.html 模板添加任何内容。 没有任何错误,但它说在 index.js 中有未使用的变量是我的组件。
这是我的代码:
index.js
// Imports
import React from 'react';
import ReactDOM from 'react-dom';
import './css/index.css';
import { BrowserRouter as Router, Route, Routes } from 'react-router-dom';
import { navbar, footer, home } from './components';
ReactDOM.render(
<Router>
<navBar />
<Routes>
<Route path="/" element={<home />} />
</Routes>
<footer />
</Router>,
document.getElementById("root")
);
home.jsx
import React from "react";
function home(){
return(
<div className="home">
<div class="container">
<div class="row allign-items-center my-5">
<div class="col-lg-7">
<img class="img-fluid rounded mb-4 mb-lg-0" src="./img/pizza.jpg" alt=""/>
</div>
<div class="col-lg-5">
<h1 class="font-weight-light">cencored</h1>
<p>cencored</p>
</div>
</div>
</div>
</div>
)
}
export default home;
navBar.jsx
import React from 'react';
import {NavLink} from 'react-router-dom';
function navBar(){
return(
<div className="navBar">
<nav className="navbar navbar-expand navbar-dar bg-dark">
<div className="container">
<NavLink className="navbar-brand" to="/"><img src="../img/logo.png" alt="logo" style="width:500px;height:500px;"/></NavLink>
<div>
<ul className="navbar-nav ml-auto">
<li className="nav-item">
<NavLink className="nav-link" to="/menu">Menu</NavLink></li>
<li className="nav-item">
<NavLink className="nav-link" to="/about">About</NavLink></li>
<li className="nav-item">
<NavLink className="nav-link" to="/contact">Contact</NavLink></li>
</ul>
</div>
</div>
</nav>
</div>
);
}
export default navBar;
footer.jsx
import React from 'react';
import {NavLink} from 'react-router-dom';
function footer(){
return(
<div className="footer">
<footer class="py-5 bg-dark fixed-bottom">
<div class="container">
<p class="m-0 text-center text-white">cencored</p>
</div>
<div>
<ul className="navbar-nav ml-auto">
<li className="nav-item">
<NavLink className="nav-link" to="/">Home</NavLink></li>
<li className="nav-item">
<NavLink className="nav-link" to="/menu">Menu</NavLink></li>
<li className="nav-item">
<NavLink className="nav-link" to="/about">About</NavLink></li>
<li className="nav-item">
<NavLink className="nav-link" to="/contact">Contact</NavLink></li>
</ul>
</div>
</footer>
</div>
);
}
export default footer;
index.js(组件导出)
export { default as navbar } from './navBar';
export { default as footer } from './footer';
export { default as home } from './home';
【问题讨论】:
-
“它没有向我的 index.html 模板添加任何内容。”是什么意思?
-
在没有路由器的情况下渲染这些组件是否有效?
-
自定义组件的名称不应该以大写字母开头吗?
-
@Bergi 如果我进入检查元素,则 html 与 index.html 模板相同,根 div 中不会添加任何内容。不,没有路由器就不行,我把它们都改成大写字母还是不行。
-
如果没有路由也无法工作,则 react-router 不是罪魁祸首,您应该重新提出您的问题。您的
index.js模块是否已加载并执行?您是否在 devtools 控制台中遇到任何错误?你用什么工具链,jsx语法转译正确吗?
标签: javascript reactjs react-router react-router-dom