Похоже, что OwlCarousel не выполняет повторную визуализацию при изменении состояния, и, таким образом, даже если ваше состояние обновляется и ваш обратный вызов отправляет ему новый набор дочерних элементов, OwlCarousel остается таким же, как и при первоначальной визуализации. У него действительно есть обратные вызовы, с которыми вы можете связать свои обновления, чтобы он обновлялся с помощью этого, но, похоже, очень плохая документация, поэтому я не стал тратить на это время. Есть нечто, называемое onRefresh
hook, которое вы можете использовать, которое принимает функцию, но опять же нет примера, который бы подсказывал вам, как это сделать. https://owlcarousel2.github.io/OwlCarousel2/docs/api-events.html
Чтобы преодолеть это, я обернул OwlCarousel в проверку длины, которая будет отображаться только после того, как состояние будет что-то отображать после возврата вызова API.
{this.state.latest_stories.length && (
<OwlCarousel className="owl-theme" loop margin={10} nav>
{this.state.latest_stories.map((story, index) => {
console.log(story); //this prints successfully everytime in loop
return (
<>
<div className="item">
<h4>{story}</h4>
</div>
</>
);
})}
</OwlCarousel>
)}
Вот рабочий пример, основанный на вашем коде: https://codesandbox.io/s/recursing-hooks-gz5gl