У меня есть приложение Vue в одном файловом компоненте, которое позволяет пользователю искать имя пользователя github и видеть полное имя, логин и страну, из которой пользователь.Функция `catch` vue-axios не срабатывает, когда ожидается
Вот мой компонент:
<template>
<div id="app">
<form @submit.prevent="search">
<input v-model="username" />
</form>
<p v-if="data">
{{ data.name }} ({{ data.login }})
is from
{{ data.location }}!
</p>
</div>
</template>
<script>
import Vue from 'vue'
import axios from 'axios'
import VueAxios from 'vue-axios'
Vue.use(VueAxios, axios)
export default {
data() {
return {
username: '',
data: []
}
},
methods: {
search() {
const api = `https://api.github.com/users/${this.username}`
Vue.axios.get(api).then((response) => {
this.data = response.data
}).catch(error => {
console.log(error)
})
}
}
}
</script>
Мой вопрос: Я не могу найти способ, чтобы справиться с ситуацией, в которой пользователь вводит пользователь, который не существует в GitHub. С блоком catch
обеими аксиомами я ожидаю, что ошибка будет записана на консоль, но это не так. Причина, по которой я хочу иметь возможность справиться с этим случаем, заключается в том, что я не хочу, чтобы текст заполнителя () is from !
, когда ни один из них не был обыскан, или недействительный поиск был выполнен.
Я пытался использовать data.length
вместо просто data
для v-if
проверки, но это, кажется, как мой компонент не «реагировать», когда это дело; Я вижу изменения данных в инструментах Vue dev, но не в компоненте. Что может быть здесь?
Вот webpackbin демо-приложения: http://www.webpackbin.com/VJlfcrGLM
Этот ответ довольно запутан. • Почему проверка была изменена на 'data.name' из' data'? • Если вы ищете пользователя, чье 'имя' является' null', объект данных появляется вместо ожидаемого сообщения об ошибке. • В примере с Webpackbin существует аналогичная ошибка консоли, используемая для частей 'then' и' catch'. То, что там происходит? • Пример Webpackbin для меня не загружается, но у него нет ошибки. • Зачем устанавливать «данные» в сообщение об ошибке вместо того, чтобы просто устанавливать значение «errorMsg» в «data» и использовать это значение для блока 'else'? – alanbuchanan
@alanbuchanan проверить [это] (http://www.webpackbin.com/EJ_P_rX8G). – Saurabh