我最近开始在 Strapi 4 和 Nuxt 3 中使用 @nuxtjs/strapi 包。我发现这个模块缺乏文档,因为我不确定如何从我的 API 检索信息。这是我到目前为止所做的:
const { find } = useStrapi()
const url = useStrapiUrl();
let kitUrl = '';
const { data, pending, refresh, error } = await useAsyncData(
'home-page',
() => find('home-page', { populate: ['kit_de_presse'] })
)
const response = data?.value?.data;
kitUrl = url + response?.attributes;
出现了很多问题: 首先,每次重新加载页面时,我都会得到一个未定义的信息,这与修改代码并进行热重新加载不同。 第二个是我正在检索一个复杂的“RefImpl”对象,而不是在不使用AsyncData()的情况下单独调用find()。
我该如何取回我的物品?
我认为你甚至不需要使用
useAsyncData
。这里有文档:https://strapi.nuxtjs.org/usage#find。你可以这样:
<script setup lang="ts">
import type { Restaurant } from '~/types'
const { find } = useStrapi()
const response = await find<Restaurant>('restaurants')
</script>
至于页面重新加载的问题,这可能是因为服务器由于某种原因无法获取数据而发生的。因此它生成
undefined
,但随后客户端重新获取数据。您是在 localhost
上还是在远程服务器上使用 Strapi?