Ohne besondere Einladung war ich auf React Dokumentation here mit dem Ziel, mit der Idee von defaultProps zu spielen. Ich habe TypeError, das ich nicht verstehen kann!Reagieren mit defaultProptypes und propTypes-Prüfung, mit undefined Requisite
import React, {PropTypes} from 'react';
import ReactDOM from 'react-dom';
class Greeting extends React.Component {
render() {
return (
<h1>Hello, {this.props.name}</h1>
);
}
}
Greeting.defaultProps = {
name: 'Stranger'
};
Greeting.propTypes = {
name: PropTypes.string,
};
ReactDOM.render(<Greeting/>, document.getElementById('root'));
Ergebnis:
Uncaught TypeError: Cannot read property 'string' of undefined
Zeigen auf (in) Quellen:
name: _react.PropTypes.string
Wie Sie in der Dokumentation zu lesen:
Die propTypes Typprüfung geschieht nach defaultProps aufgelöst werden, so Typprüfung wird auch Wenden Sie sich an die defaultProps.
Wenn ich entfernen:
Greeting.propTypes = {
name: PropTypes.string, //.isRequired
};
Es wird keine Typeerror sein! Bitte, wie ich das verstehen konnte und beide propTypes und defaultProps ohne TypeError bekommen, wenn ich nicht explizit eine Requisite, die einen Standardwert zugewiesen hat, zur Verfügung gestellt (weshalb Standard-Wert existiert)?
Danke: Sie sollten
PropTypes
vonprop-types
importieren. Ich habe es importiert, aber als "React importieren, reagieren {PropTypes} von 'reagieren';" –und das lustige ist, dass ich von einem Video-Tutorial geübt habe, das nicht aktualisiert wurde, nur Ihre Antwort hat mich daran erinnert, dass es aktualisiert wird und nicht mehr, wo ich importiert habe! –