在React应用中使用react-router
时,你可能会遇到需要在特定路由上隐藏某些组件(例如按钮)的情况。你可以通过检查当前的路由路径来实现这一点。以下是一个详细的示例,展示了如何在特定路由上隐藏按钮组件。
react-router-dom
: 如果你还没有安装react-router-dom
,可以使用以下命令进行安装:npm install react-router-dom
// App.js import React from 'react'; import { BrowserRouter as Router, Route, Switch, useLocation } from 'react-router-dom'; const Home = () => <h2>Home Page</h2>; const About = () => <h2>About Page</h2>; const Contact = () => <h2>Contact Page</h2>; const Button = () => { const location = useLocation(); const hideButtonOnPaths = ['/about', '/contact']; if (hideButtonOnPaths.includes(location.pathname)) { return null; } return <button>Click Me</button>; }; const App = () => { return ( <Router> <div> <Button /> <Switch> <Route exact path="/" component={Home} /> <Route path="/about" component={About} /> <Route path="/contact" component={Contact} /> </Switch> </div> </Router> ); }; export default App;
react-router-dom
中导入BrowserRouter
(重命名为Router
)、Route
、Switch
和useLocation
。Home
、About
和Contact
,它们分别显示不同的内容。Button
的组件。useLocation
钩子获取当前的路由路径。hideButtonOnPaths
,包含需要隐藏按钮的路径。hideButtonOnPaths
数组中,如果是,则返回null
,否则返回按钮组件。Router
包裹整个应用。Router
内部,首先渲染Button
组件,然后使用Switch
和Route
定义不同的路由。create-react-app
来创建:npx create-react-app my-app cd my-app
react-router-dom
:npm install react-router-dom
src/App.js
内容:将上述代码复制到src/App.js
中。 npm start
/
路径,你应该会看到按钮。/about
或/contact
路径,按钮应该会隐藏。领取专属 10元无门槛券
手把手带您无忧上云