vue.js onMounted中的useFetch未在直接链接打开nuxt3上获取数据

qgelzfjb  于 2022-12-23  发布在  Vue.js
关注(0)|答案(1)|浏览(405)

我使用useFetch来获取组合API中的数据,然后在组件中调用onMounted钩子中的函数,下面是代码。

useShows.ts(可组合)

export function useShows(){

    var shows = useState<Show[]>('shows')

    const fetchShows = async() => {
        const {data, pending} = await useFetch<Show[]>('http://localhost:3000/shows')
        shows.value = data.value
    }

    return {shows, fetchShows}
}

显示.vue

<script setup lang="ts">

    var { shows, fetchShows } = useShows()

    onMounted(() => {
        console.log("On mounted called")
        fetchShows()
    })
</script>

<template>
    <div>{{shows}}</div>
</template>

当我从主页导航到/shows时,它工作正常,但当我直接打开链接localhost/shows时,它不工作,只给我空值。

a1o7rhls

a1o7rhls1#

我也有同样的问题。我用nextTick把它包起来解决了。

await nextTick(async () => {
  await fetchShows()
})

相关问题