2017-07-25 19 views
0

userオブジェクト内のデータにアクセスできない理由がわかりません。 channel_idへのアクセスVueコンポーネント内のオブジェクト内のデータにアクセスできません

{ 
    "channel_id": 2, 
    "user": { 
    "id": 1, 
    "name": "Clyde Santiago", 
    "email": "[email protected]", 
    "created_at": "2017-07-25 08:10:58", 
    "updated_at": "2017-07-25 08:10:58" 
    }, 
    "message": "ssd" 
} 

usermessageで結構です。しかし、私はuser内のデータにアクセスするとき、それはエラーを示し、

「未定義のプロパティを読み取ることができません 『名前』」

をここにHTMLは私のVueのコンポーネントに

<ul class="list-group"> 
    <li class="list-group-item" v-for="conversation in conversations"> 
    <p> 
     {{conversation.message}} 
    </p> 
    <small>{{conversation.user.name}}</small> // error here 
    </li> 
</ul> 
+1

このデータはどのような非同期で取得されますか? – Bert

+1

アクセスしようとしているデータはどれですか? {{conversation.user}}はオブジェクトなので、[object Object]を与える必要があります。 {{conversation.user.id}}はユーザーIDなどを返します – HelloWorld

+0

"プロパティ 'name' of undefinedを読み取ることができません。エラーです。私はプッシャーを使用しています –

答えて

2

データが非同期に取り出されるとき、それはすぐにが定義されていません。テンプレートに

conversation.user.name 

を参照しているので、あなたのエラーになりuserが定義されていない時間が、あります。

通常、これはガードで簡単に回避できます。

{{conversation.user && conversation.user.name}} 
+0

ありがとうございます。できます –

0

です{{conversation.user}}を呼び出すときに使用しているテンプレート言語が文字列を期待しているにもかかわらず、オブジェクトに与えています。だから、テンプレートエンジンは、あなたがそれに渡す「という文字列を」アウトエコーしようとしますが、単に情報がある場合は、この代わりに{{conversation.user.name}}

を試してみて、エラー

..Hence conversation.userをターゲットとする場合、それは文字列でないとき非同期でロードされている場合は、最初にuserオブジェクトが存在するかどうかをチェックする必要があります。だから、それはようなものになるだろうことを行うには:

{{conversation.user && conversation.user.name}} またはここに示されているように、それはこの

{{#if conversation.user}} 
    {{conversation.user.name}} 
{{/if}} 
+0

それはエラーです。 {{conversation.user}}へのアクセスは問題ありません。しかし、{{conversation.user.name}}にエラー\t が表示されます。 "未定義のプロパティ 'name'を読み取れません。 –

+0

は非同期に読み込まれますか? –

+0

あまりにも下の投票で混乱しました –

-2

ようになるハンドルバーのようなもののために、ユーザーがオブジェクトではなく印刷可能な値そのものです。 {{conversation.user.name}}のように個別にプロパティにアクセスしようとしましたか?

+0

N00bはこれを得ていません:私の答えはそれ以来大きく編集されている元の質問に答えたので下降しましたか?それから、downvotingの価値は何ですか? –

+0

質問は明確ではなかったので、編集した_heavily_(これは私が重く呼ぶものではありません)でした。不明な質問に答えるときは、間違った問題に対する正しい答えを得る危険があります。 –

関連する問題