Używam obiektu danych jako moich rekwizytów dla komponentu ReactJS.
<Field data={data} />
Wiem, że łatwo jest zweryfikować sam obiekt PropTypes:
propTypes: {
data: React.PropTypes.object
}
Ale co jeśli chcę zweryfikować wartości w środku? to znaczy. data.id, data.title?
props[propName]: React.PropTypes.number.required // etc...
React.PropTypes
jest teraz przestarzałe Zamiast tego skorzystajPropTypes
zprop-types
pakietu. Więcej tutajJeśli
React.PropTypes.shape
nie daje Ci odpowiedniego poziomu sprawdzania typu, spójrz na tcomb-reaguj .Zapewnia
toPropTypes()
funkcję, która pozwala sprawdzić poprawność schematu zdefiniowanego za pomocą biblioteki tcomb, wykorzystując wsparcie React do definiowania niestandardowychpropTypes
walidatorów , uruchamiając sprawdzanie poprawności za pomocą sprawdzania poprawności tcomb .Podstawowy przykład z jego dokumentów :
źródło
Chciałem zauważyć, że zagnieżdżanie działa poza głębokością jednego poziomu. Przydało mi się to podczas sprawdzania poprawności parametrów adresu URL:
źródło
id
jest wymagane tylko wtedy, gdy znajduje sięmatch.params
obiekt lub robiisRequired
kaskadę, oznaczającymatch
isrequired zparams
obiektów zid
rekwizytem? tzn. jeśli nie podano parametrów, czy nadal byłby ważny?match
musi miećparams
iparams
musi miećid
”.match
jest obecny i Jeślimatch
zawieraparams
to jest wymaganeparams
zawiera ciągid
.źródło