Итак, мы создаем приложение чата, в котором пользователь отправляет сообщение агенту для поддержки клиентов.В зависимости от вопроса агент отвечает с неизвестной длиной сообщения.Иногда проблема заключается в том, что сообщение длинное, а иногда отправляется несколько сообщений, потому что оно автоматизировано, и пользователь прокручивается вниз до нижней части страницы, что может привести к пропуску сообщений, ранее отправленных до этого последнего сообщения.Наше требование состоит в том, чтобы обрабатывать такие случаи, прокручивая пользователя только до верхней части первого сообщения, а не до нижней части страницы, когда отправляется несколько сообщений, чтобы пользователь мог прочитать первое до последнего.Как я смогу добиться этого с React.Мой текущий код выглядит так:
метод setScroll
setScroll() {
if (!this.scroller) return;
let { autoScroll = true } = this.props;
if (!autoScroll) return;
this.scroller.scrollTop = this.scroller.scrollHeight;
}}
Метод визуализации, который получает и отображает сообщения
render() {
let {
noScroller = false,
containerStyle = {},
loading, className = '' } = this.props;
if (noScroller) return this.getList();
return (
<section
style={containerStyle}
ref={c => this.scroller = c}
className={classNames(className, style.scroller)}>
{this.getList()}
</section>
);
}
и наконец
componentDidUpdate() {
this.setScroll();
}
componentDidMount() {
this.setScroll();
}
Любая помощь будет принята с благодарностью.Спасибо!