javascript - 通过特定父组件内的路径渲染反应组件
问题描述
在我的 App.js 组件中,我有 Login、Register 和 Dashboard 组件的路由。如果用户成功登录,它应该将您重定向到仪表板。接下来,在仪表板中,我有侧边栏、工具栏和主要组件。在此之前一切正常。但我的目标是每当我点击侧边栏导航链接(主页 (/home)、项目 (/projects)、客户端 (/clients)... - 它们的组件名称相同)时,这些组件中的每一个都应该仅在基于 Main 的内部呈现在路径或 url 上从导航链接单击生成。我尝试为 Main 内部的每个添加路由,但在重定向整个页面后变为空白。所以我猜这不是正确的方式。希望这个问题描述足够清晰,可以理解。感谢您的任何帮助或建议。
应用程序.js
const App = () => {
useEffect(() => {
if (localStorage.token) {
setAuthToken(localStorage.token);
}
store.dispatch(loadUser());
}, []);
return (
<Provider store={store}>
<Router>
<>
<Switch>
<Route exact path="/" component={Dashboard} />
<Route exact path="/register" component={Register} />
<Route exact path="/login" component={Login} />
</Switch>
</>
</Router>
</Provider>
);
};
仪表板.js
const Dashboard = () => {
return (
<div className="dashboard">
<Sidebar />
<Toolbar />
<Main />
</div>
);
};
Sidebar.js
const Sidebar = () => {
return (
<aside className="sidebar">
<div class="logo-box">
<span className="logo">LOGO</span>
</div>
<nav className="side-nav">
<Link to="/">
<Tooltip title="Home">
<HomeOutlined />
</Tooltip>
</Link>
<Link to="/projects">
<Tooltip title="Projects">
<FolderOutlined />
</Tooltip>
</Link>
<Link to="/client">
<CarryOutOutlined />
</Link>
</nav>
</aside>
);
};
主.js
const Main = () => {
return (
<div className="main">
...place to render home, projects or clients component
</div>
);
};
解决方案
推荐阅读
- clips - Clips.NET 编码问题。字符串西里尔文事实不可读
- excel - 同时将多个图像从 Excel 导出到我的工作簿
- ssis - SSIS 作业可以异步吗?
- redux - 提交 redux 表单未传递表单值
- javascript - 如何发送仅包含值的对象键值对?
- docker - 在企业防火墙/代理服务器后面运行 kubernetes kubeadm 集群
- ssl - Hyperledger Fabric:在尝试调用链码时,如何期望用户拥有其他组织的 ca 证书?
- swift - 使用协议传递所选行的 indexPath
- javascript - Angularjs - 如何在单击特定链接时显示特定 div 并使用 ng 重复选项卡隐藏以前的 div
- c# - DbGeography 联合减法而不是合并