У меня есть область контента на моей странице, которая отображает данные, которые можно получить из API.Я подключил его так, что когда данные извлекаются из API, они сохраняются в хранилище Redux, и страница отображает их.Теперь мне нужно добавить прокрутку к верхней и нижней кнопкам, чтобы, если страница длиннее заданного количества, скажем, 600px, они появлялись.Странно то, что при первой загрузке страницы запрос API не срабатывает, поэтому страница пуста, поэтому кнопки не должны появляться.
Учитывая все это, я не вижу способа, кроме как сделать это в componentDidUpdate ()
componentDidUpdate() {
let ContentArea = document.getElementById('contentArea');
if(ContentArea != null & ContentArea.clientHeight > 0){
this.props.pageContentHeight(ContentArea.clientHeight)
}
}
и сохранить значение высоты в хранилище Redux, чтобы в коде я мог отобразитьсвитки вот так:
{(contentHeight > 600) && <Scroll to="bottom" /> }
<Router page={pageURL} />
{(contentHeight > 600) && <Scroll to="top" /> }
contentHeight выше исходит от магазина редуксов.
Из того, что я прочитал, не рекомендуется отправлять в жизненном цикле обновления React, тем более что отправка также приводит к запуску жизненного цикла обновления, это может привести к бесконечному циклу.Могу ли я как-нибудь добиться того, чтобы вы, ребята, думали о добавлении прокрутки к верхней или нижней кнопке на странице?
Этот пакет позволяет прокручивать нижнюю, но не верхнюю часть: https://www.npmjs.com/package/react-scroll-to-bottom