Добрый день.
Имеется родительский компонент, который должен передавать дочерним компонентам массив с объектами. Массив получаем асинхронно с помощью fetch
let newsList = [];
// newsList = [ {id:1, title: "Заголовок"}, {id:2, title: "Заголовок"}...]
const sendData = () => {
fetch('/api/news-list.json', requestOptions)
.then(response => response.json())
.then(result => newsList = result)
}
<ListLoading :news-list="newsList" />
Дочерний компонент:
defineProps({
newsList: Array
});
<ListLoadingItem v-for="item in newsList" :key="item.id" :news-list-item="item" >
{{item.id}}
</ListLoadingItem>
Шаблон компонента ListLoadingItem:
defineProps({
newsListItem: Object
});
<div class="list-loading-item">
<h3 class="gw-list-loading-item__title">
{{ newsListItem.title }}
</h3>
</div>
Данные по фетчу приходят, но в пропсе остается значение по умолчанию - пустой массив. В корневой компонент вставлял проверку v-if - не помогло:
<ListLoading v-if="sendData" :news-list="newsList" />
пропсам задавал результат выполнения функции - не помогло:
<ListLoading :news-list="sendData" />
И вроде асинхронные компоненты это в другую сторону. Можете, пожалуйста, подсказать что делаю не так?