reactjs - 动态更新侧边栏中的菜单
问题描述
我有一个侧边栏组件,它支持要显示的菜单项。
但菜单项会根据当前呈现的页面不断变化。如何从子组件更新菜单项。
应用程序.js
内容
const items = [
{ path: '/home', label: 'Home' },
{ path: '/about', label: 'About' },
]
<Container fluid>
<Row>
<Col xs={3} id="sidebar-wrapper">
<Sidebar items={items}/>
</Col>
<Col xs={9} id="page-content-wrapper">
<Routes />
</Col>
</Row>
</Container>
Sidebar.js
返回 (
<Nav className="col-md-12 d-none d-md-block sidebar">
{items.map(({ label, name, ...rest }) => (
<Nav.Item key={name} button {...rest}>
<Nav.Link href={name}>{label}</Nav.Link>
</Nav.Item>
))}
</Nav>
);
现在,当页面滚动到 /about 时,项目将是
const items = [
{ path: '/contact us', label: 'contact' },
{ path: '/address', label: 'address' },
{ path: '/item 3', label: 'item 3' },
]
解决方案
- 集成
redux
到您的应用中以进行状态管理。 - 在 store 中创建一个单独的 store 变量
sideBarItems
,并在path
. - 在您的组件
Sidebar.js
中,映射sidebarItems
,每次在商店中更新此变量时,都会呈现新的侧边栏项目。
推荐阅读
- jquery - DataTables - 无效的 JSON 响应查询
- python - 通过python从网页中提取信息
- java - Spring Config-server 仅从我的 git 存储库在配置文件上抛出 404
- vodapay-miniprogram - VodaPay 小程序上是否所有 API 调用都包含 Referer 标头?
- in-app-purchase - 如何获取 uniq id 或订单 id 以识别应用购买中的每个用户支付操作
- apache-kafka - 在 ksql 中重新分区多个键
- mongodb - 获取时间戳为今天的 MongoDb 文档
- node.js - 节点js上的错误消息之前的奇怪文字
- c# - c# windows form app,替换字符串的问题
- android - 我无法将图像从设备上传到 Firebase 存储(kotlin)