Gibt es eine integrierte Möglichkeit, Proptypen zu verwenden, um sicherzustellen, dass ein Array von Objekten, die an eine Komponente übergeben werden, tatsächlich ein Array von Objekten einer bestimmten Form ist?
Vielleicht so etwas?
annotationRanges: PropTypes.array(PropTypes.shape({
start: PropTypes.number.isRequired,
end: PropTypes.number.isRequired,
})),
Vermisse ich hier etwas ganz offensichtliches? Scheint so sehr gefragt zu sein.
arrays
reactjs
react-proptypes
majorBummer
quelle
quelle
.isRequired
auf jeder Eigenschaft von hinzuweisenReact.PropTypes.shape
. Ich bin hier angekommen, weil ich fälschlicherweise angenommen habe, dass ich es durch die Verwendung von.isRequired
onReact.PropTypes.arrayOf
nicht drinnen brauchte. Um eine vollständige Validierung der Abdeckung zu erreichen, habe ich sie letztendlich auch direktReact.PropTypes.shape
angewendet.arrayWithShape
[] ist (ein leeres Array), schlägt es nicht fehl. WennarrayWithShape
es sich um {} (ein Objekt) handelt, schlägt dies fehl. IfarrayWithShape
is[{dumb: 'something'}]
(ein Array ohne die richtigen Requisiten) schlägt fehl. Ich brauche es, um die Validierung nicht zu bestehen, wennarrayWithShape
es sich um ein leeres Array handelt. Ich möchte nur, dass es übergeben wird, wenn es sich um ein nicht leeres Array mit Objekten handelt, die Requisitencolor
und habenfontsize
. Was vermisse ich?Ja, Sie müssen
PropTypes.arrayOf
anstelle desPropTypes.array
Codes Folgendes verwenden: Sie können Folgendes tun:Auch für weitere Details über proptypes , Besuch Typprüfung mit PropTypes hier
quelle
[undefined]
die Validierung bestehen würdeUnd da ist es ... direkt vor meiner Nase:
Aus den Reaktionsdokumenten selbst: https://facebook.github.io/react/docs/reusable-components.html
quelle
Es gibt einen ES6-Kurzschriftimport, auf den Sie verweisen können. Besser lesbar und einfach zu tippen.
quelle
Wenn ich dieselben Proptypen für eine bestimmte Form mehrmals definieren möchte, möchte ich sie in eine Proptypendatei abstrahieren, sodass ich den Code nur an einer Stelle ändern muss, wenn sich die Form des Objekts ändert. Es hilft, die Codebasis ein wenig auszutrocknen.
Beispiel:
quelle
Dies war meine Lösung, um mich auch vor einem leeren Array zu schützen:
quelle