reactjs - 主要组件未在反应路由中呈现
问题描述
我有这段代码,我想<Main />
在除登录和注册页面之外的所有部分呈现组件。我设置了一个 window.location.pathname 来检测路径名,如果它是注册或登录页面,则不呈现任何内容。但问题是该<Main />
组件也没有在任何组件中呈现。
import './App.css';
import './index.css'
import App from './App'
import Main from './main.js'
import {
BrowserRouter as Router,
Switch,
Route,
Link
} from "react-router-dom";
import Dashboard from './dashboard.js'
import Clients from './Clients.js'
import AddClient from './clientform.js'
import EditClient from './editclient.js'
import Landing from './landing.js'
import AddDiet from './addDiet.js'
import CalendarSection from './calendar.js'
import Login from './login.js'
import { useAuth0 } from "@auth0/auth0-react";
import Register from './register.js'
export default function MainApp() {
let HideHeader = window.location.pathname === '/login' || '/register' ? null : <Main />
return (
<Router>
{HideHeader}
<Switch>
<Route exact path="/login">
<Login />
</Route>
<Route exact path="/register">
<Register />
</Route>
<Route exact path="/dashboard">
<Dashboard />
</Route>
<Route exact path="/Clients">
<Clients />
</Route>
<Route exact path="/addClient">
<AddClient />
</Route>
<Route exact path="/Calendar">
<CalendarSection />
</Route>
<Route exact path="/Clients/:id">
<EditClient />
</Route>
<Route exact path="/Clients/:id/addDiet">
<AddDiet />
</Route>
</Switch>
</Router>
)
}
解决方案
当 url 路径与路由匹配时,Route 组件接受要渲染的子级。你为什么不把你的<Main />
组件包含在你希望它被渲染的路由中呢?您只需要重组渲染部分。例如:
<Route exact path="/dashboard">
<>
<Main />
<Dashboard />
</>
</Route>
推荐阅读
- python - 如果没有指定参数,如何将值添加到将使用的函数?
- python - 如何在 y 轴上获得正确的顺序(matplotlob(P 2.7)正确
- sql - SQL - 包括空字段
- html - justify-self css 属性没有产生预期的效果
- javascript - 如何使用 Javascript 创建多个不和谐机器人状态
- css - 第一个字母超出段落框。如何解决?
- python-3.x - 关于 rnn.pack_padded_sequence 的用法
- sublimetext3 - Sublime Text 3 正在转换带有驼峰名称的下划线函数
- html - 如何将默认值传递给
- java - Instagram 类型模式视图