我不知道这有什么问题,repository
ref的值就是没有更新
我写了async/await,但似乎不起作用。repository
是一个空数组。
我可以使用onMounted
的API,所以我认为它有问题。我不太懂。
下面是我的代码:
<template>
<div>
<h1>Starred Repositories</h1>
<ul>
<li v-for="repository in repositories" :key="repository.id">
<h3>{{ repository.name }}</h3>
<p>{{ repository.description }}</p>
</li>
</ul>
<button @click="nextPage" :disabled="isLastPage">Next Page</button>
</div>
</template>
<script setup>
import { Octokit } from '@octokit/core';
const repositories = ref([]);
const page = ref("1")
const runtimeConfig = useRuntimeConfig();
const octokit = new Octokit({
auth: runtimeConfig.githubToken,
});
const nextPage = () => {
page.value++;
}
onMounted(async () => {
const response = await octokit.request('GET /user/starred?page=' + page.value, {
headers: {
'X-GitHub-Api-Version': '2022-11-28',
},
});
repositories.value = response.data;
})
console.log(repositories.value);
</script>
这是我的app.vue:
<script>
import Star from './components/Star.vue'
export default {
components: {
Star,
}
}
</script>
<template>
<Star />
</template>
1条答案
按热度按时间wz3gfoph1#
控制台日志将执行并记录一个空数组,因为它将在
onMounted
中的代码之前执行,它是一个钩子,钩子本身不支持异步。移动
console.log
,使其位于onMounted
钩子内部,并确保端点实际上返回的不是空数组本身。另外,使用生命周期钩子来触发API调用并不是最好的方法,而是使用顶层等待并观察策略。
https://nuxt.com/docs/getting-started/data-fetching#watch
在您的情况下,您没有使用Nuxt的获取帮助程序...所以手动装配看起来像这样: