TypeError: Невозможно прочитать загруженное свойство неопределенного - PullRequest
0 голосов
/ 07 ноября 2019

Я могу загрузить значение с laravel, как это $comments = Comment::with(['replies', 'user'])->get();, передать его в vue и отобразить его, но затем появится сообщение об ошибке:

"TypeError: Cannot read property 'avatar' of undefined"

мой шаблон выглядит так:

<template><li>
    {{comment.user.avatar}}
</li></template>

однако, если я пытаюсь поместить его в изображение src, ошибки не отображаются, но все исчезает и выглядит так в DOM

<li data-v-5ca803bb="">
    <!---->
</li>

Данные существуют в инструментах Vue Dev, я также пытался с<a href="{{comments.user.avatar}}"></a> и это не сработало, я не знаю, почему я не могу поместить его в какой-либо атрибут

Объект комментария:

{"id":4,
"user_id":1,
"textField":"oiuio",
"created_at":"2019-11-06 10:52:10",
"updated_at":"2019-11-06 10:52:10",
"replies":[],
"user":{
    "id":1,
    "name":"Dominykas",
    "email":"s@gmail.com",
    "avatar":"https://www.pixelstalk.net/wp-content/uploads/2016/08/Cute-Girl-Images.jpg",
    "provider":"google",
    "provider_id":"11185022391312255843258",
    "email_verified_at":null,
    "created_at":"2019-11-05 22:18:24",
    "updated_at":"2019-11-05 22:18:24"
}}

1 Ответ

0 голосов
/ 08 ноября 2019

Прежде всего, я не смог ничего добавить к атрибутам, например:

<img src="{{comments.user.avatar}}"></img>

, потому что Vue работает не так, как я использовал с реагировать, синтаксис на самом деле:

<img :src="comments.user.avatar"></img>

Вторичный, у меня была ошибка типа, потому что, действительно, я пропустил пользовательский экземпляр, как указывали люди, однако это было не в предоставленном примере шаблона, а в моем коде спагетти.

Предложение: лучше разделить проблемы и создатьнесколько разных компонентов, чем пытаться использовать один и устанавливать флаги везде и получать подобные ошибки, будьте осторожны.

...