从一个页面重定向到另一个页面,但不在Routes.js文件中显示该文件路径



我是Reactjs的新手,我正在使用Material-UI,我的问题是我想使用侧边栏从一个页面转到另一个页面,在Material UI中进行重定向,必须在侧边栏中显示我不想要的页面。

var dashRoutes = [
{
path: "/Dashboard",
restricted: true,
name: "Dashboard",
icon: DashboardIcon,
component: VesselInfoPage,
layout: "/admin"
},
{
path: "/Add/",
name: "Add",
icon: Group,
component: AddPage,
layout: "/admin"
}
];

在上面的代码中,如果我想从Dashboard转到Add页面,那么有必要在routes.js文件中显示该页面,这是我不想要的。

在react中,您总是可以对需要使用历史api的内容进行编程导航。

这是同一的样品

class Register extends React.Component {
handleSubmit = (user) => {
saveUser(user).then(() =>
this.props.history.push('/dashboard')
))
}
render() {
return (
<div>
<h1>Register</h1>
<Form onSubmit={this.handleSubmit} />
</div>
)
}
}

如果您想了解更多详细信息,请阅读此

React Router的真正主力是历史库。在引擎盖下,它是React Router的会话历史记录。当React Router渲染组件时,该组件会传递三个不同的道具:位置、匹配和历史。这个历史道具来自历史库,上面有很多与路由相关的奇特属性。在这种情况下,我们感兴趣的是history.push。它所做的是将一个新条目推送到历史堆栈中,也就是将用户重定向到另一个路由。

这是一篇关于这个的博客文章https://tylermcginnis.com/react-router-programmatically-navigate/

最新更新