JSON na React PropTypes w kilka sekund — Numio
Zamienia przykładowy obiekt rekwizytów w JSON w obiekt React propTypes. Zagnieżdżone obiekty to PropTypes.shape, tablice ciągów PropTypes.arrayOf(PropTypes.string), a wartości null PropTypes.any.
Dodawanie kontroli właściwości wykonawczych do komponentu React JavaScript na podstawie próbki otrzymanych danych.
JSON
PropTypes
Kiedy go używać
- Dodawanie kontroli właściwości wykonawczych do komponentu React JavaScript na podstawie próbki otrzymanych danych.
- Dokumentowanie właściwości starszego komponentu klasy ze znanymi przykładowymi danymi.
Jak używać
- Wklej obiekt JSON z przykładowymi rekwizytami; główna tablica obiektów jest najpierw łączona w jeden obiekt.
- Przeczytaj blok const propTypes = {...}; zagnieżdżone obiekty pojawiają się jako PropTypes.shape({...}).
- Skopiuj go, dodaj import PropTypes z „prop-types”, przypisz go do MyComponent.propTypes i dodaj .isRequired tam, gdzie to konieczne.
Rekwizyty JSON
{
"title": "Release notes",
"count": 3,
"visible": true,
"tags": ["web", "react"],
"author": { "name": "Ada", "avatarUrl": "https://example.com/a.png" },
"links": [
{ "label": "Docs" },
{ "label": "Repo", "url": "https://example.com/repo" }
],
"badge": null
}Zareaguj PropTypes
const propTypes = {
title: PropTypes.string,
count: PropTypes.number,
visible: PropTypes.bool,
tags: PropTypes.arrayOf(PropTypes.string),
author: PropTypes.shape({
name: PropTypes.string,
avatarUrl: PropTypes.string,
}),
links: PropTypes.arrayOf(
PropTypes.shape({
label: PropTypes.string,
url: PropTypes.string,
}),
),
badge: PropTypes.any,
}Szczegóły i ograniczenia
Działa w przeglądarce Web Worker z własnym generatorem witryny, następnie Prettier; brak żądania serwera.
Żaden prop nie jest oznaczony jako .isRequired, a funkcji, elementów ani wyliczeń nie można wywnioskować z JSON.
W przypadku tablicy obiektów wszystkie elementy są scalane w jeden kształt PropTypes, więc uwzględniane są klucze, które pojawiają się tylko w późniejszych elementach.
Tablice typu mieszanego to PropTypes.arrayOf(PropTypes.oneOfType([...])), tablice zagnieżdżone arrayOf(arrayOf(...)) i tablice puste PropTypes.array.
FAQ
Czy mogę wkleić tablicę JSON?
Tak, jeśli zawiera obiekty: elementy są łączone w jeden obiekt, więc wynik zawiera listę wszystkich kluczy znalezionych w dowolnym elemencie. Tablica ciągów lub liczb w katalogu głównym jest odrzucana.
Jak wpisuje się wartości null?
Jako PropTypes.any, ponieważ wartość null nie mówi nic o rzeczywistym typie. Zastąp go oczekiwanym walidatorem, na przykład PropTypes.string.
Czy PropTypes nadal działa w React 19?
Nie. React 19 usunął sprawdzanie propTypes, więc definicje są dyskretnie ignorowane. Użyj tego wyjścia z React 18 lub wcześniejszym, lub przełącz się na typy TypeScript.