Я новичок в vue / обещании, и я изо всех сил пытаюсь понять, почему, когда я пытаюсь отобразить результат обещания, я получаю ожидаемые данные, но когда я пытаюсь выяснить его длину, он говорит undefined
Когда я пытаюсь отобразить предупреждения от displayAlerts()
, я вижу список предупреждений, всего 2. Однако в computed
в функции title
${this.displayAlerts.length}
отображается как undefined
, я ожидал увидеть 2
.
Это как-то связано с displayAlerts()
, приводящим к обещанию? Как мне исправить код так, чтобы я получил 2
вместо undefined
?
Код ниже:
<template>
<div>
{{displayAlerts}}
<li v-for="alert in alerts" class="alert">
{{alert['name']}}
</li>
</div>
</template>
export default {
data () {
return {
alerts: null,
alert: new Alert(),
updatedAlert: new Alert(),
deletedAlert: new Alert(),
};
},
computed: {
...mapGetters("authentication",['token']),
...mapGetters("user",['profile']),
displayAlerts() {
return getUserAlert({
user_id: this.profile.user_id,
token: this.token
}).then(response => (this.alerts = response.data)).catch(
error => console.log(error)
)
},
title () {
return `My Alerts (${this.displayAlerts.length})`
},
test2() {
return [1,2,3]
},
}
};
</script>