Reaccionar: Cómo matriz de acceso en un objeto?

roshambo:

Un poco de una pregunta de novato y al final del día, pero ¿cómo accedo a una matriz en un objeto? Me estoy haciendo undefinedy TypeError: Cannot read property 'length' of undefined. Puedo conseguir los datos del objeto (Id, ElemId, etc) bien.

...
this.state = {
   yfinder: [],
   ...
}

...then api call...
this.setState({
  finder: res.Finder,
  ...
})

JSON:

"Finder": {
    "Id": "23216245567u4",
    "ElemId": "finder",
    "Title": "Your Finder",
    "Description": "This is a description",
    "ResultsTitle": "What program or service are you looking for?",
    "CategoryTitle": "Great! Select a category to continue..",
    "Results": [
       {
         ...
       }
       {
         ...
       }
    ]
}
let finder = this.state.finder;
console.log(finder.Results);

for (var i = 0; i < finder.Results.length; i++) {
  console.log(finder.Results[i]); 
}
Singh nosotros:

Eso es porque inicialmente el objeto del buscador no tiene resultados de la matriz. Probar esto y ver si esto funciona.

let finder = this.state.finder;
console.log(finder.Results);
const resultsLength = finder.Results ? finder.Results.length : null;

for (var i = 0; i < resultsLength; i++) {
  console.log(finder.Results[i]); 
}

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=303162&siteId=1
Recomendado
Clasificación