我正在使用 Prismic API 获取一些我想要在 Nuxt3 模板中显示的数据。
一切正常,我只想在没有数据时显示 404 页面,而不是 500 错误。我添加了一个检查数据是否为空的检查:
<script setup>
const route = useRoute()
const name = route.params.werke;
const { client } = usePrismic()
const { data: werk } = await useAsyncData('werk', () => client.getByUID("werk", name))
if (!werk.uid) {
throw createError({ statusCode: 404, statusMessage: 'Page Not Found' })
}
</script>
问题是,在 if (!werk.uid) 部分 werk.uid 始终为空。所以我总是收到 404 错误。在我的模板中,werk.uid 不为空,因此我认为存在问题,if 语句无法使用 useAsyncData 访问 const 变量?
有什么想法吗?官方文档以类似的方式向我推荐:https://v3.nuxtjs.org/getting-started/error-handling/#example-1
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
棱镜论坛中的有人帮助我找到了解决方案。这是 Vue 3 特定的问题:
您需要在 werk 之后使用 .value:
(!werk.value)。而不仅仅是(werk.anything)