teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

説明を追記

2021/07/26 12:12

投稿

taku-hu
taku-hu

スコア178

answer CHANGED
@@ -1,5 +1,10 @@
1
1
  始め`plun`には何も入っていません。
2
+
2
3
  そのため`{{ plun.title }}`は`undefined`になり、何も表示されません。
3
4
  その後に`get`されたデータが入ってきて、`plun`の値が更新されるので結果的に`{{ plun.title }}`は中の値が表示されます。
4
5
 
5
- しかし`{{ plan.title.rendered }}`に関しては、そもそも`plun.title`が`undefined`だった場合、`undefined`に対してプロパティ`rendered`を指定しているのでエラーになります。
6
+ しかし`{{ plan.title.rendered }}`に関しては、そもそも`plun.title`が`undefined`だった場合、`undefined`に対してプロパティ`rendered`を指定しているのでエラーになります。
7
+
8
+ それを回避したい場合は`get`が終わってから表示させるか、`{{ plan.title && plan.title.rendered }}`のようにすればよいかと思います。
9
+
10
+ ※Optional Chainingを使うと`plan.title?.rendered`のようにより簡潔に書けますが、Vueのテンプレート内では使用できません。

1

説明の追記

2021/07/26 12:12

投稿

taku-hu
taku-hu

スコア178

answer CHANGED
@@ -1,1 +1,5 @@
1
+ 始め`plun`には何も入っていません。
1
- {{ plan.title && plan.title. }}
2
+ そのため`{{ plun.title }}`は`undefined`になり、何も表示されません。
3
+ その後に`get`されたデータが入ってきて、`plun`の値が更新されるので結果的に`{{ plun.title }}`は中の値が表示されます。
4
+
5
+ しかし`{{ plan.title.rendered }}`に関しては、そもそも`plun.title`が`undefined`だった場合、`undefined`に対してプロパティ`rendered`を指定しているのでエラーになります。