2016-05-06 4 views
3

Also diese Zeile des Codes wirft so etwas wie 'Fehlgeschlagen propType: Ungültige Prop von Typ array erwartet object.'Warnung: Fehlgeschlagen propType: Ungültige Prop von Typ "Array" erwartet "Objekt" mit React

Warum passiert das?

Hier ist meine JSON:

"student_records": [ 
     { 
     "program": "PSCI-210", 
     "grade": 80 
     } 
    ] 

jsx:

import React, { PropTypes } from 'react'; 


const StudentRecordPropTypes = { 
    studentRecordData: PropTypes.object.isRequired, 
}; 

function StudentRecord(props) { 
    const Records = props.studentRecordData; 


    return (
    <div> 
     {(Records || []).map(student_records => (
       <ul> 
        <li>{student_records.program} : {student_records.grade} </li> 
       </ul> 
      ))} 
    </div> 
); 
} 
StudentRecord.propTypes = StudentRecordPropTypes; 

export default StudentRecord; 

Es richtig angezeigt wird. Nach einigem Googeln stellte ich fest, dass es sich um ein Array handelt, aber tatsächlich um ein Objekt. Mein Problem ist, dass ich nicht weiß, wie ich es beheben kann. Wie kann ich diesen Fehler entfernen?

Antwort

8

ändern

const StudentRecordPropTypes = { 
    studentRecordData: PropTypes.object.isRequired, 
}; 

zu

const StudentRecordPropTypes = { 
    studentRecordData: PropTypes.array.isRequired, 
}; 
+0

Yay danke! Gibt es irgendwelche Vorschläge, die Sie an die Rückgabefunktion machen könnten, ohne sie in ein Array zu ändern? – Modelesq

+0

"students_records" ist ein Array, also muss es ein Array sein, warum denkst du, dass es ein Objekt ist? – QoP

+0

:) nvm verwirrende Dinge. Danke für Ihre Hilfe! – Modelesq

Verwandte Themen