質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

MicroCMS

MicroCMSとは、APIベースのヘッドレスCMSです。日本製のため、デフォルトで日本語に対応しており、サポートも豊富。管理画面でも作成したコンテンツなどが見やすくシンプルで、APIの管理がしやすい点も特徴です。

HeadlessCMS

HeadlessCMS(ヘッドレスCM)とは、REST APIを用いてコンテンツを提供するCMS。そのため、あらゆるデバイスで表示することができます。フロントエンドとバックエンドの分離されており、フロントエンド側の高い自由度が特徴です。

Vuls

Vulsとは、Linuxの脆弱性スキャンツールです。脆弱性情報を取得し、サーバにインストールされているソフトウェアの脆弱性を診断。詳細をレポーティングします。脆弱性検知を自動化できるため、サイバー攻撃などのリスクを低減できます。

Q&A

解決済

1回答

1745閲覧

v-ifでdataがあるときの表示・非表示

ttkun

総合スコア30

Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

MicroCMS

MicroCMSとは、APIベースのヘッドレスCMSです。日本製のため、デフォルトで日本語に対応しており、サポートも豊富。管理画面でも作成したコンテンツなどが見やすくシンプルで、APIの管理がしやすい点も特徴です。

HeadlessCMS

HeadlessCMS(ヘッドレスCM)とは、REST APIを用いてコンテンツを提供するCMS。そのため、あらゆるデバイスで表示することができます。フロントエンドとバックエンドの分離されており、フロントエンド側の高い自由度が特徴です。

Vuls

Vulsとは、Linuxの脆弱性スキャンツールです。脆弱性情報を取得し、サーバにインストールされているソフトウェアの脆弱性を診断。詳細をレポーティングします。脆弱性検知を自動化できるため、サイバー攻撃などのリスクを低減できます。

0グッド

0クリップ

投稿2020/08/26 03:58

Nuxt + microcmsでJAMstackサイトを作成中です。

ブログ記事一覧などでサムネイルがあれば表示、なければデフォルトの画像を表示といった実装をおこなう際にうまくいきません。

template

1airticle(v-for='(item, index) in items' :key="item.id") 2 nuxt-link(:to='`/info/${item.id}`') 3 v-card 4 div.d-flex.flex-no-wrap.justify-space-between 5 div 6 v-card-title(v-text="item.title") 7 v-card-subtitle(v-html="item.post.slice(0, 200)") 8 div(v-if="item.eyecatch.url") 9 img(:src="item.eyecatch.url") 10 div(v-else) 11 img(src="default.png")

js

1<script> 2import axios from 'axios' 3 4export default { 5 async asyncData ({ params }) { 6 const page = params.p || '1' 7 const limit = 4 8 const { data } = await axios.get( 9 `https://hogehoge.microcms.io/api/v1/info?limit=${limit}&offset=${(page - 1) * limit}`, 10 { 11 headers: { 'X-API-KEY': process.env.API_KEY } 12 } 13 ) 14 return { 15 items: data.contents 16 } 17 }, 18 19 data () { 20 return { 21 items: [] 22 } 23 } 24} 25</script>

エラーにこのようなものがでてきてしまいます。

Cannot read property 'url' of undefined

dataに画像があるときは表示。無いときはデフォルトの表示といった記述はどのように書いたらよいでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

コード拝見させていただきました。

console

1Cannot read property 'url' of undefined

こちらですが、「item.eyecatch」がundefinedなので、「item.eyecatch.url」が参照できないというエラーになります。
ですので、「item.eyecatch」がundefinedになる場合を考慮する必要があります。

例えば、下記のようなコードはいかがでしょうか。お試しください。

javascript

1div(v-if="item.eyecatch && item.eyecatch.url") 2 img(:src="item.eyecatch.url") 3div(v-else) 4 img(src="default.png")

投稿2020/08/28 02:18

yuhigash

総合スコア327

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ttkun

2020/10/02 07:54

できました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問