gpt4 book ai didi

javascript - 是否有使用 react 路由器隐藏组件的最佳实践方法?

转载 作者:行者123 更新时间:2023-12-02 21:27:56 24 4
gpt4 key购买 nike

为了隐藏主页组件上的导航栏,我正在执行以下操作

const NavbarComponent = (props) => {
console.log(props);

if (props.match.path === '/') {
return null;
} else
return (

它工作正常,我需要访问路由器,以便我可以将人员发送到依赖于 Prop 对象的位置,是否有更好的方法来做到这一点,以便我将所有路由器逻辑放在同一个地方? p>

这是我的路由器的当前状态

    return (
<div>
<Router>
<Route component={Navbar} />

<Switch>
<Route exact path="/" component={Home} />

<Route exact path="/api/:city/electronics" component={Electronics} />
<Route exact path="/api/:city/labour" component={Labour} />

<Route exact path="/api/posts/item/:id" component={ItemDetails} />

<Route exact path="/create/:city/:category" component={CreatePost} />
</Switch>
</Router>
</div>
);


感谢您的宝贵时间。

最佳答案

我不确定我是否理解为什么您的 NavBar 组件位于它自己的 Route 中。 Router 中包含的任何组件都可以访问整个 Router api,包括 Link - 它们不需要是 Route 即可这样做。

我建议使用该组件包装包含 NavBar 的所有路由。然后,路线将显示为导航栏组件的子组件。

这是一个简化的示例:

// App.js
return (
<div>
<Router>
<Switch>
<Route exact path="/" component={Home} />
<NavBar>
<Route exact path="/electronics" component={Electronics} />
<Route exact path="/labour" component={Labour} />
</NavBar>
</Switch>
</Router>
</div>
);

//NavBar.js
return (
<>
<div>
<Link to="/electronics">Electronics</Link>
<Link to="/labour">Labour</Link>
</div>
<div>{props.children}</div>
</>
);

codesandbox

关于javascript - 是否有使用 react 路由器隐藏组件的最佳实践方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60687194/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com