Я использую реагирование и семантику.Я использую пример с несколькими боковыми панелями .Идея состоит в том, что левая боковая панель предлагает некоторые пункты меню, а затем правая боковая панель - это подменю, основанное на том, какой вариант из левого меню выбран.Когда выбран элемент подменю, компонент добавляется в Sidebar.Pusher
, т.е. отображается на странице.Все это работает, за исключением повторного рендеринга содержимого Sidebar.Pusher
.Это, видимо, обновляется только при изменении видимости левой боковой панели.Я использую redux / rematch для обработки состояния и вижу, что состояние, содержащее содержимое Sidebar.Pusher
, обновляется, но `render () вызывается только при изменении видимости боковой панели.
Содержимое Sidebar.Pusher
является массивом, и я даже пытался отобразить на странице длину массива, которая обновляется (вставляется) при каждом нажатии на элемент на правой боковой панели.Однако это не приводит к запуску render (), оно происходит буквально при изменении видимости левой боковой панели.
Просто чтобы заметить, я действительно видел эту проблему , однако она из последнейгод, и ответа было недостаточно для того, чтобы я смог решить проблему.Хотелось бы получить помощь.
Структура:
Index.js
рендеринг App.js
, App.js
рендеринг Menu.js
(это семантический набор табуляций ).Один из пунктов меню - Sidebar.js
, который отображает:
<Sidebar.Pushable as={Segment}>
<Sidebar
as={Menu}
animation="overlay"
direction="right"
inverted
vertical
visible={secondaryVisibility}
width="wide"
>
{focusedList.map((el, i) => {
return (
<Menu.Item key={i} as="a" onClick={() => this.addSegment(el)}>
<Article el={el} />
</Menu.Item>
)
})}
</Sidebar>
<Sidebar
as={Menu}
animation="overlay"
icon="labeled"
inverted
// onHide={this.handleSidebarHide}
vertical
visible={primaryVisibility}
width="wide"
>
<Menu.Item
onClick={() => this.changeTab(menuItem)}
as="a"
name="menuItem"
header
>
Menu Item
</Menu.Item>
</Sidebar>
<Sidebar.Pusher style={{ minHeight: "600px" }}>
<Segment basic>
{segments.map((el, i) => {
console.log(`el ${el}`)
return <Content key={i} segment={el} />
})}
</Segment>
</Sidebar.Pusher>
и все состояния (secondaryVisibility
и т. Д.) Сохраняются в повторном матче
Спасибо