#reactjs
#reactjs
Вопрос:
У меня есть компонент боковой панели, который принимает элементы меню для отображения.
но пункты меню продолжают меняться в зависимости от текущей отображаемой страницы. Как мне обновить элемент меню из дочерних компонентов.
app.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' },
]
Ответ №1:
- Интегрируйте
redux
в свое приложение для управления состоянием. - Создайте отдельную переменную хранилища
sideBarItems
в хранилище и обновите ее на основеpath
. - В вашем компоненте
Sidebar.js
сопоставьтеsidebarItems
, каждый раз, когда эта переменная обновляется в хранилище, будут отображаться новые элементы боковой панели.
Комментарии:
1. Спасибо. Я попробую это. Я думал, что для приложения меньшего размера, подобного моему, мне не понадобится redux. но я думаю, что пришло время также изучить redux.