為什麼我無法在 Nuxt 3 腳本設定標記中存取 if 語句的 useAsyncData ?
P粉105971514
2023-08-26 09:47:58
<p>我正在使用 Prismic API 來取得一些我想要在 Nuxt3 範本中顯示的資料。 </p><p>
一切正常,我只想在沒有數據時顯示 404 頁面,而不是 500 錯誤。我新增了一個檢查資料是否為空的檢查:</p>
<pre class="brush:html;toolbar:false;"><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>
</pre>
<p>問題是,在 <code>if (!werk.uid)</code> 部分 werk.uid 總是空。所以我總是收到 404 錯誤。在我的範本中,werk.uid 不為空,因此我認為有問題,if 語句無法使用 useAsyncData 存取 const 變數? </p>
<p>有什麼想法嗎?官方文件以類似的方式向我推薦:https://v3.nuxtjs.org/getting-started/error-handling/#example-1</p>
棱鏡論壇中的有人幫我找到了解決方案。這是 Vue 3 特定的問題:
您需要在 werk 之後使用 .value:
(!werk.value)
。而不僅僅是(werk.anything)