开发者问题收集

无法读取 reactjs 应用程序中未定义的属性“forEach”

2018-02-06
10702

我有一个 JS 方法,它接受一个 JSON 文件并尝试从中获取信息:

getData(json) {
        var output = '';

        json.Legs.forEach(function (item) {
            .
            .
            .
            .
            .
            .
        });

        return output;
    }

我收到此 forEach 错误:

Uncaught TypeError: Cannot read property 'forEach' of undefined

是否可以像这样使用 forEach,或者我根本不应该使用 forEach? 还有其他方法可以做到这一点吗?

3个回答

确认 json.Legs 不为空后,需要执行循环。例如

if(json.Legs){
  json.Legs.forEach(function (item) {
            .
            .
            .
            .
            .
            .
        });
}
Abdul Qayyum
2018-02-06

将此作为代码的第一行添加,并查看它打印的内容。如果它是一个数组,您可以在其上执行 forEach 。否则它会抛出正确的错误。

console.log(json.Legs)
curlyBraces
2018-02-06

类似这样的方法应该可以解决问题(在迭代之前检查 .legs 属性是否存在以及它是否为数组):

getData(json) {
    var output = '';

    if(json.Legs && Array.isArray(json.Legs)){

     json.Legs.forEach(function (item) {
        //do something with item
     });
    }

    return output;
}
Goran Gjorgievski
2018-02-06