setState
является асинхронным, поэтому выполнение чего-либо после этого не будет работать.
Чтобы сделать что-то после того, как состояние установлено - передайте обратный вызов setState
в качестве второго аргумента.
this.setState(
{messages},
() => this.messagesList.scrollToEnd({animated: true})
);
Но по моему опыту вам все равно понадобится короткий setTimeout
.Поскольку после установки состояния может возникнуть некоторая задержка при рендеринге, и прокрутка будет запущена слишком рано.