@historydev
Редактирую файлы с непонятными расширениями

Как отключить скролл при условии что состояние не изменилось?

Здравствуйте. Реализовал чатик, подгружаю по 20 сообщений при прокрутке вверх, при достижении 0 я кручу вниз на 20 сообщений чтобы юзер попал туда, где остановился. Однако попал в ситуацию что сообщения закончились, а меня каждый раз отбрасывает на 20 назад. Как это исправить?

prevMessages - дополнительно подгруженные сообщения
messagesBox - элемент с сообщениями

useEffect(() => {
        if(messagesBox) {
            messagesBox.onscroll = (e) => {
                if(e.target.scrollTop < 1) {
                    e.target.scrollTo(0, e.target.querySelector('.direct-chat-msg:nth-child(20)').offsetTop);
                    const msgID = prevMessages.length ? parseInt(prevMessages[0].id) : parseInt(messages[0].id);
                    socket.emit('getPrevMessages', {roomId, msgID});
                }
                e.preventDefault();
            }
        }
    }, [prevMessages]);


Спасибо.
  • Вопрос задан
  • 50 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы