Ich habe eine Komponente erstellt und möchte eine ihrer Eigenschaften validieren. Aber es scheint, dass die Validierung nicht funktioniert. Wenn ich auf diese Komponente zugreife, kam ich immer unter die Eigenschaft undefined Fehler:PropTypes in react es6 funktioniert nicht
Cannot read property 'map' of undefined
Unten ist meine Komponentendefinition.
import React, {Component, PropTypes} from 'react'
import Carousel from 'nuka-carousel'
export default class DiagnosticSchedule extends Component {
render() {
let {style, diagnostics, afterSlide, beforeSlide} = this.props
// if(diagnostics === undefined){
// return (<div/>)
// }
return (
<div style={style}>
<Carousel style={style} decorators={null} afterSlide={afterSlide} beforeSlide={beforeSlide}>
{
diagnostics.map(diagnostic => {
return (
<div style={styles.message}>
{diagnostic.name}
</div>
)
})
}
</Carousel>
</div>
)
}
}
DiagnosticSchedule.propTypes = {
diagnostics: PropTypes.array.isRequired,
};
const styles = {
carousel:{
},
message: {
fontSize: 'xx-large',
flex: 1,
backgroundColor: 'red',
alignSelf: 'center',
lineHeight: '5',
zIndex: 100,
width: '100%',
textAlign: 'center',
}
}
Ich glaube unten Code wird verwendet, um die Eigenschaft dieser Komponente zu überprüfen.
DiagnosticSchedule.propTypes = {
diagnostics: PropTypes.array.isRequired,
};
aber es beschwert sich immer noch, dass die Diagnose ist ein undefiniertes Objekt.
Vermisse ich etwas oder missverstehe ich die PropTypes-Validierung? Was ist das erwartete Verhalten von PropTypes?
Dank
Statt 'getDefaultProps()' versuchen Einstellung 'DiagnosticSchedule.defaultProps = {...}'. –
Ja, es funktioniert. Ich wandere, was DiagnosticSchedule.propTypes hier macht. Wenn ich DiagnosticSchedule.defaultProps nicht habe, erzeugt mein Code Probleme. –
'getDefaultProps()' funktioniert nur mit 'React.createClass'. –