我有一个功能组件MainToolBar。在导航到其他页面(功能组件)时,我需要更改主工具栏的标题。我怎么能这么做?使用上下文API或Redux或任何其他简单的东西
下面是Main ToolBar的代码。js
export default function MainToolBar() {
const classes = useStyles();
return (
<div className={classes.root}>
<AppBar position="static">
<Toolbar>
<Typography align="center" variant="h6" className ={classes.title}>
ERP System
</Typography>
<Button color="inherit">Login</Button>
</Toolbar>
</AppBar>
</div>
);
}
下面是Thirdparty.js的代码
function ThirdParty()
{
return (
<div>
<label>ThirdParty</label>
</div>
)
}
export default ThirdParty
layout.js
import {
BrowserRouter as ReactRouter,
Switch as ReactSwitch,
Route as ReactRoute,
} from "react-router-dom";
import ThirdParty from "./ThirdParty.js";
export default function Layout() {
return (
<div>
<ReactRouter>
<MainToolBar />
<ReactSwitch>
<ReactRoute exact path="/" component={SignInUp}>
</ReactRoute>
<ReactRoute exact path="/thirdparty" component=
{ThirdParty}></ReactRoute>
</ReactSwitch>
</ReactRouter>
</div>
);
}
上下文API和redux都是很好的解决方案。这样,您可以编写一个简单的效果钩子来更新工具栏标题上下文/调度redux操作来更改它。这个钩子将在由Road
组件呈现的主组件中被调用。
另一种解决方案(但可能不太一致)是基于路径为可选工具栏标题创建映射对象。这样,您可以使用react router domuseLocation
hook标识路径,并更改标题。例如
import React, { useEffect, useState } from "react";
import { useLocation } from "react-router-dom";
const titles = {
"/": "ERP System",
"/thirdparty": "Third Party"
};
...
// Inside Toolbar component
const location = useLocation();
const [title, setTitle] = useState(titles["/"]);
useEffect(() => {
setTitle(titles[location.pathname]);
}, [location.pathname]);
...
如果有依赖于ID值的路径,则效果内部需要更复杂的逻辑。
我的android应用程序有一个工具栏,我想改变它的标题。我使用了toolbar.settitle(),但它不起作用...请帮忙。我该怎么办?我尝试了getSupportActionBar().setTitle(),但它不起作用。
我想从材质UI更改(减少)工具栏的默认高度 我已经提到了如何更改材质UI工具栏高度?但我仍然面临着这个问题 问题是,当我超过50岁时,我能看到变化。但当我想降低高度时,我无法做到。 我如何才能实现这一点? 我的代码:
我想显示现在说唱文字,比如...我怎么能改变它通过使用材料UI 它像那样显示“身体1”。Lorem ipsum dolor坐在这里,奉献给我们。克罗斯·布兰迪特..." 但我想表现得像“身体1.洛雷姆·伊普苏姆·多洛·希特·阿梅特,奉献给精英们。库斯·布兰迪。。。더보기" 你能帮我吗?
我在活动中有以下代码: 我正在从中的不同片段更新ActionBar标题,如下所示:
问题内容: 我正在尝试从Material-UI 更改组件的边框。到目前为止,我已经尝试过: 我可以自定义等,但是许多小时后,我仍然无法自定义Select。我尝试也传递一个,但是您必须自定义,这甚至更糟。 有人可以帮我这个沙盒吗? https://codesandbox.io/s/material-demo- ecj1k 我真的很感激。 问题答案: 以下是为默认,悬停和聚焦状态覆盖边框(),标签()
问题内容: 如何在除登录页面之外的所有页面上显示导航栏,从而不必在每个需要的页面上附加导航栏文件?现在,我在主应用程序布局上包含了导航栏,应如何处理使其保持干燥? 演示(每页上带有导航栏): 问题答案: 创建像这样的命名视图,并按状态按视图设置templateUrl。对于状态,只需不为视图提供templateUrl ,它就不会呈现导航栏。 更新 :隐藏在非状态。