我刚从 vue 开始,我在下面给出了一个问题,我不知道为什么没有显示 api 数据。
vue.runtime.esm.js?2b0e:619 [Vue 警告]:属性或方法“结果”未在实例上定义,但在渲染期间被引用。通过初始化该属性,确保该属性是反应性的,无论是在数据选项中,还是对于基于类的组件。
vue.runtime.esm.js?2b0e:619 [Vue 警告]:属性或方法“searchValue”未在实例上定义,但在渲染期间被引用。通过初始化该属性,确保该属性是反应性的,无论是在数据选项中,还是对于基于类的组件。
这是我的代码:
<template>
<div class="wrapper">
<div class="search">
<label for="search">Search</label>
<input
id="search"
name="search"
@input="handleInput"
v-model="searchValue"
/>
<ul>
<li v-for="item in results" :key="item.data[0].nasa_id">
<p>{{ item.data[0].description }}</p>
</li>
</ul>
</div>
</div>
</template>
<script>
import axios from 'axios';
import debounce from 'lodash.debounce';
const API = 'https://images-api.nasa.gov/search';
export default {
name: 'Search',
date() {
return {
searchValue: '',
results: [],
};
},
methods: {
// eslint-disable-next-line func-names
handleInput: debounce(function () {
axios.get(`${API}?q=${this.searchValue}&media_type=image`)
.then((response) => {
console.log(response.data.collection.items);
})
.catch((error) => {
console.log(error);
});
}, 500),
},
};
</script>