开发者问题收集

TypeError:无法读取 vue.js 组件 Laravel 9 中的 null 属性(读取“profile_picture”)

2022-11-07
869

环境 Laravel v9 + vite,PHP 8.1,vue3,VPS Linux 发行版。UBUNTU

在此处输入图片说明

我的 Laravel 项目的 vue.js 组件中出现此错误,它表示 profile_picture 在对象中具有空值,但我也对此进行了检查

       <div v-if="typeof rep.user.profile_picture != null">
      <img :src="rep.user.profile_picture" :alt="rep.user.name" class="commenter-image rounded-circle"/>
       </div>
        <div v-else>
        <img src="/assets/images/user-placeholder-1.jpg" alt="Commenter-placeholder" class="commenter-image rounded-circle"/>
       </div>

我已在文件中仔细搜索此 profile_picture 属性,除了此属性外,其他地方均不存在。但仍然有此问题 此外,它与 sweetalert2 库没有任何关系,但控制台仍指向此库 对这个错误有什么看法?? 额外帮助材料>>

在此处输入图片描述

2个回答

条件 v-if="typeof rep.user.profile_picture != null" 不起作用,因为 typeof rep.user.profile_picture 返回 object 。因此我建议您将此条件更改为

v-if="rep.user.profile_picture !== null"

甚至

v-if="rep.user && rep.user.profile_picture !== null"
Sergey Andreev
2022-11-07

似乎在某些 rep 对象中, user 属性为空。您能否验证数组中的所有对象是否都包含 user 属性的值。

您可以使用 可选链接 (?.) 运算符:

v-if="rep?.user?.profile_picture !== null"
Rohìt Jíndal
2022-11-07