gpt4 book ai didi

reactjs - 使用 React Router 保留侧边栏

转载 作者:行者123 更新时间:2023-12-03 14:07:06 26 4
gpt4 key购买 nike

我想切换详细信息博客,但仍保留侧边栏。我使用下面的代码,但它不起作用。你能帮我改正吗?非常感谢。

const routes = (
<Switch component={App}>
<Route exact key="detailpost" path={CelestialSettings.path + 'posts/:slug'}
components={{main: Detail, sidebar: Popular, mainbottom: Categories}} />) }
/>
<Route exact key="listpost" path={CelestialSettings.path}
components={{feature:Featurex, main: Blog, sidebar: Popular, mainbottom: Categories}} />) }
/>
</Switch>
);

class App extends React.Component {
render () {
const {feature, main, sidebar, mainbottom } = this.props;
return (
<div>
<div className="container">
<div className="main-feature" id="main-feature">
{feature}
</div>
</div>
<div id="content" className="site-content">
<div className="container">
<div className="divcontainer">
<div id="po-homepage" className="content-area">
{main}
</div>
<aside id="secondary" className="sidebar widget-area">
<div className="popular_post" id="popular_post">
{sidebar}
</div>
</aside>
</div>
</div>
</div>
<div className="cat-list">
<div className="container">
<div className="thecategories" id="thecategories">
{mainbottom}
</div>
</div>
</div>
</div>
)
}
}

ReactDOM.render(
(routes),
document.getElementById('app')
);

最佳答案

要在多个路由中保持相同的侧边栏,您可以将侧边栏组件与 Switch 组件放在同一级别。粗略示例:

const routes = (
<div>
<YourSidebar>
{/* ... */}
</YourSidebar>
<Switch component={App}>
<Route ... />
<Route ... />
{/* ... */}
</Switch>
</div>
);

这样,React-Router 就不会重新渲染(或更新)侧边栏组件,而只会控制 <Switch> 的内容。 .

关于reactjs - 使用 React Router 保留侧边栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53306754/

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