Nuxt 3 スクリプト設定タグの if ステートメントの useAsyncData にアクセスできないのはなぜですか?
P粉105971514
2023-08-26 09:47:58
<p>Prismic API を使用して、Nuxt3 テンプレートに表示したいデータを取得しています。 </p><p>
すべて正常に動作します。データがないときに 500 エラーではなく 404 ページを表示したいだけです。データが空かどうかを確認するチェックを追加しました: </p>
<pre class="brush:html;toolbar:false;"><スクリプトのセットアップ>
const ルート = useRoute()
const 名 = ルート.params.werke;
const { クライアント } = usePrismic()
const { data: werk } = await useAsyncData('werk', () => client.getByUID("werk", name))
if (!werk.uid) {
throw createError({ statusCode: 404, statusMessage: 'ページが見つかりません' })
}
</スクリプト>
</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>
Prism フォーラムの誰かが解決策を見つけるのを手伝ってくれました。これは Vue 3 固有の問題です:
werk の後に .value を使用する必要があります:
だけではありません(!werk.value)
。(werk.anything)