我有一个用material UI设计的web应用程序,正如你们在下面看到的,我使用按钮导航来浏览我的基本登录页组件。
<div className="footer">
<BottomNavigation value={value} onChange={this.handleChange} className={classes.root}>
<BottomNavigationAction label="signal" value="signal" icon={<ShowChart />} className={classes.content}/>
<BottomNavigationAction label="hotlist" value="hotlist" icon={<HotList />} className={classes.content}/>
<BottomNavigationAction label="analyze" value="analyze" icon={<PieChart />} className={classes.content}/>
<BottomNavigationAction label="learn" value="learn" icon={<LibraryBooks/>} className={classes.content}/>
<BottomNavigationAction label="dashboard" value="dashboard" icon={<PermIdentity/>} className={classes.content}/>
</BottomNavigation>
</div>
我曾尝试将React Router与这些预定义的导航组件一起使用,但没有成功,有没有可能将Router与材质UI的按钮导航一起使用?物料界面中的按钮导航文章ButtonNavigation API
再加上@thirtydot的精彩答案,如果用户输入搜索并直接访问特定网页(默认除外),例如“www.yoursite.com/tab2”,而不是单击第二个按钮,这可能会导致显示的网站与聚焦的底部导航按钮(通常是第一个按钮)不匹配。
以下是我所做的:
我使用window.location.pathname
直接获取当前路径“/tab2”。
以下是我针对特定用例的代码。。。。
function BottomNavBar(){
const pathname = window.location.pathname; // in case user visits the path directly. The BottomNavBar is able to follow suit.
const [value, setValue] = React.useState(pathname);
const handleChange = (event, newValue) => {
setValue(newValue);
};
return (
<BottomNavigation value={value} onChange={handleChange} showLabels={true} >
<BottomNavigationAction label="home" value="/" icon={<HomeIcon />} component={Link} to='/'/>
<BottomNavigationAction label="resources" value="/resources" icon={<ResourcesIcon /> } component={Link} to='/resources'/>
<BottomNavigationAction label="Q&A" value="/qna" icon={<QnAIcon />} component={Link} to='/qna'/>
<BottomNavigationAction label="profile" value="/profile" icon={<ProfileIcon />} component={Link} to='/profile'/>
</BottomNavigation>
);
}
是的,有可能。您需要使用组件
道具:
import { Link } from 'react-router-dom';
import BottomNavigation from '@material-ui/core/BottomNavigation';
import BottomNavigationAction from '@material-ui/core/BottomNavigationAction';
// ....
<BottomNavigation value={value} onChange={this.handleChange}>
<BottomNavigationAction
component={Link}
to="/signal"
label="signal"
value="signal"
icon={<ShowChart />}
className={classes.content}
/>
</BottomNavigation>
(to
prop是用于React路由器的Link
组件)
这适用于从按钮库继承的任何材质UI组件。
https://material-ui.com/api/bottom-navigation-action/
ButtonBase组件的属性也可用。可以利用此行为以嵌套组件为目标。
https://material-ui.com/api/button-base/
component
-用于根节点的组件。使用DOM元素或组件的字符串。
我想从API中读取要显示的产品。然后,当我按下其中一个显示的产品时,它应该使用url中的产品ID和要在页面上查看的产品详细信息将我路由到一个组件,以获取有关该产品的详细信息。我在这里读取了API中的数据,并详细显示了产品。 我想通过产品ID添加一个路由链接。如何将详细信息作为其他组件的道具发送?
我用 react 写了一个页面,在这个页面里有几个模块,其中一些模块都有 a 标签,比如 footer.jsx 我想实现的是,当点击这里的 blog 或者 help 后会访问对应的页面,blog 访问 /blog,help 访问 /help。 然后在各自的页面里,可以重定向到其它的页面去,比如 blog -> /blog -> https://blog.domain.com help -> /he
我正在使用react路由器(2.4.1),我有一个通配符(path=“*”)回退路由来显示“未找到”组件。 我的其中一条路线定义如下: 我可以以任何方式验证路由参数,以检查该类别是否存在于我的类别列表中?如果没有,我希望路由器下降到通配符,以便显示未找到组件
问题内容: 基本路线是这样的: 是否可以命名该路由并在任何模板中使用它,以便可以像这样使用它: 灵感来自Django :) 问题答案: 没有开箱即用的机制。但是,您可以模仿Django的样式:定义文件,该文件将包含URL数组。首先开始: myviews.js urls.js 现在在 app.js (或任何主文件)中,您需要将URL绑定到Express。例如这样: app.js 现在,您可以定义自定
我正在使用Vue2和Vue Router 3.5构建SPA应用程序 应用程序有两个身份验证路径,“admin”和“organization” 我设置了路由器,这样每个授权保护在url中都有自己的前缀 '/auth/:防护' '/组织' /admin 路由器文件如下所示: 在组织文件内部,我返回一个对象: 在以前的项目中,我使用router.beforeEach来处理系统中的导航。 路由器的问题。b