首页 > 解决方案 > TypeError:无法读取未定义的属性“值”(匿名函数)

问题描述

我在以下语句中收到 TypeError:

    let uploadSignal = true;
    
    mandatoryFields.forEach((element) => {
        let field = this.state[element];
        if(field.value === ""){
            field.error = "Required!";
            uploadSignal = false;
        }
    });

标签: reactjs

解决方案


TypeError:无法读取未定义的属性“值”

这意味着您正在尝试引用在对象上调用valueundefined属性。你这样做的唯一地方是这里:

if(field.value === ""){

这意味着field未定义。 field在这里设置:

let field = this.state[element];

this.state[element]这意味着undefined.

我在问为什么 value 未定义以及如何解决此错误以便我可以运行我的程序

对于前者,我们不得而知。您需要调试并发现您的运行时值是什么,以及为什么您希望定义此值。我们只能肯定地说不是。

对于后者,您可以在尝试使用之前有条件地检查该值是否“真实” :

if(field && field.value === ""){

在这种情况下,field操作undefined的左侧&&将是“假的”,这将导致整个条件false无需评估操作的正确&&运行。条件为false时,该if块不被执行,代码继续。


推荐阅读