javascript - 如何从同一页面的不同部分单击基于按钮的同一页面中的动态组件?
问题描述
我正在使用 material-ui 创建仪表板类型的应用程序做出反应。在仪表板主页中,有 3 个部分,1 个用于项目,1 个用于项目摘要部分,另一个用于通知。我想要这样的功能,当我单击项目部分中的一个项目时,项目详细信息将呈现在仪表板项目摘要部分的同一页面上。
我Route
试过react-router-dom
这里是项目仪表板图像
这是我的项目代码
<Project elevation={elevation1} setElevation={setElevation1} projectName="BMW S17" />
单个项目组件
<Paper className={classes.pen}
style={{ background: 'linear-gradient(to right, #00b4db, #0083b0)' }}
onMouseOut={ () => setElevation(1) }
onMouseOver={ () => setElevation(5) }
elevation={elevation}
onClick={() => alert(`project clicked ${projectName}`)}
>
<Typography variant="h6" component="h3" className={classes.title}>
{ projectName }
</Typography>
<Typography style={{ color: "#fff" }}>
Paper can be used to build surface.
</Typography>
</Paper>
这是我在 app.js 中的路线
<BrowserRouter>
<Switch>
<Route path="/" exact component={Welcome} />
<Route path="/login" exact component={Login} />
<Route path="/signup" exact component={Signup} />
<Main>
<PrivateRoute exact path="/dashboard" component={Dashboard} />
<PrivateRoute path="/profile" component={Profile} />
</Main>
</Switch>
</BrowserRouter>
我的私人是..
export const PrivateRoute = ({ component: Component, ...rest }) => {
return <Route
{ ...rest }
render={props =>
localStorage.getItem('authToken') ? (
<Component { ...props } />
) : (
<Redirect
to={{
pathname: "/login",
state: { from: props.location }
}} />
)
}
/>
}
解决方案
据我了解,您想根据项目名称实施项目详细信息。
对于这种实现,您可以使用 TABS( https://material-ui.com/components/tabs/ ) 而不是路由。要对齐垂直,您可以在选项卡组件中使用垂直部分。当你想重定向到其他页面时,应该使用路由。
推荐阅读
- asp.net-core - Swashbuckle 用 VS XML 注释中的双引号将数字示例包装起来
- x-frame-options - URL 重写标头中缺少的 X-Frame-Options
- c++ - 从文件写入到类成员函数并在 C++ 中的控制台上打印?
- c - 为什么这两个函数的结果不同?
- android - 在 Android 应用程序中哪里可以找到数据库连接
- node.js - 在本地 Windows nodeJS 安装中运行“ng new”会给出 npm 错误
- postgresql - 在 Slick 中添加评论
- php - Laravel 5.7 外键约束格式不正确
- python - 如何在 yattag 中添加提取的 html?
- ios - 使用 Codable (Swift) 从 Json 文件中解析 UIColor