проверяю, что в массиве counterparties есть нужная мне сущность, а если её нет я её отдельно запрашиваю с сервера и добавляю в массив counterparties, ко всем остальным. массив находится внутри реактивного store
Пытаюсь её выводить <div>{{currentCounterparty.user.name}}</div> и ничего не вижу
{ counterparties, loadCounterpartyById } = useCounterparty(),
currentCounterparty = computed(() => {
if (counterparties.value.length == 0) {
loadCounterpartyById(currentUser.value.token, useRoute().params.id)
} else {
return counterparties.value.filter(item => item?.user?.id === useRoute().params.id)[0]
}
})
нельзя делать мутации или делать async запросы внутри computed
вроде нехорошо компутеды менять
пробовал через watch, тоже не сработало =(
{ counterparties, loadCounterpartyById } = useCounterparty(), currentCounterparty = computed(() => counterparties.value.filter(item => item?.user?.id === useRoute().params.id)[0]) watch(counterparties, () => { if (!currentCounterparty.value) { loadCounterpartyById(currentUser.value.token, id) } })
🙂 еще раз скажу - нельзя делать асинхронные запросы внутри computed или какие-либо мутации computed должен быть чистой функцией
ну так я же просто фильтр там делаю, запрос отдельно лежит
Обсуждают сегодня