reactjs - TypeError:无法读取未定义的属性“值”(匿名函数)
问题描述
我在以下语句中收到 TypeError:
let uploadSignal = true;
mandatoryFields.forEach((element) => {
let field = this.state[element];
if(field.value === ""){
field.error = "Required!";
uploadSignal = false;
}
});
解决方案
TypeError:无法读取未定义的属性“值”
这意味着您正在尝试引用在对象上调用value
的undefined
属性。你这样做的唯一地方是这里:
if(field.value === ""){
这意味着field
未定义。 field
在这里设置:
let field = this.state[element];
this.state[element]
这意味着undefined
.
我在问为什么 value 未定义以及如何解决此错误以便我可以运行我的程序
对于前者,我们不得而知。您需要调试并发现您的运行时值是什么,以及为什么您希望定义此值。我们只能肯定地说不是。
对于后者,您可以在尝试使用之前有条件地检查该值是否“真实” :
if(field && field.value === ""){
在这种情况下,field
操作undefined
的左侧&&
将是“假的”,这将导致整个条件false
无需评估操作的正确&&
运行。条件为false
时,该if
块不被执行,代码继续。
推荐阅读
- java - 有没有办法利用 Jackson ObjectMapper 从 JSON 中逐个读取对象
- python - python中的子列表列表
- css - Bootstrap 手风琴表不适用于 Laravel 项目
- ios - 我的应用使用相机功能再次被 Apple 拒绝(法律 - 隐私 - 数据收集和存储)
- javascript - 尝试在 vsCode 中为 Mozilla 调试器设置配置时出现端口错误
- magento - 单个产品详细信息显示在主页而不是主页 magento 2
- angular - 基本角度
- r - 如何在 R 中为 [-10:10] 绘制 x^2?
- azure - 如何将应用注册客户端 ID 放入 Azure AD 令牌?
- css - 允许具有固定位置的 flex 容器随视口一起收缩