Complex composition using `PropTypes.shape`
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 25/100
- Type d'issue
- Fonctionnalité
- Clarté
- À clarifier
- Activité
- À l'abandon
- Stack technique
- javascript, react
- Domaine
- documentation, tooling
Piste de recherche
L’issue ne nomme aucun fichier, test ou point d’entrée du parser. Commencez donc par retracer la manière dont PropTypes.shape, oneOfType, arrayOf et objectOf sont actuellement traités. Comparez les exemples demandés de composants imbriqués et de variantes avec la documentation générée, puis définissez la sortie attendue et les tests avant l’implémentation.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
I have a component that looks something along the lines of
import A from './A';
import B from './B';
class MyComponent extends Component {
...
}
MyComponent.propTypes = {
aProps: PropTypes.shape(A.propTypes),
bProps: PropTypes.shape(B.propTypes),
...
};
Is there a way to make the parser detect that this is a composition rather than simple prop shapes?
I'm doing this because I don't want all the props to live on the wrapper component's scope but to contain each in their own prop, mainly to be able to distinguish what goes where so I don't accidentally pass props that both A and B may have but in reality shouldn't be the same like className, style, children, etc.
I would also like to know if this is possible:
import A from './A';
import VariantOfA from './VariantOfA';
class MyComponent extends Component {
...
}
MyComponent.propTypes = {
aProps: PropTypes.oneOfType([PropTypes.shape(A.propTypes),PropTypes.shape(VariantOfA.propTypes)])
...
};
In this scenario I want to be able to represent with a single prop both A and VariantOfA because essentially they are the same with minor differences in prop types.
I would assume this could be the same for PropTypes.arrayOf and PropTypes.objectOf since they're not that different from PropTypes.oneOfType
- Langage dominant
- TypeScript
- Étoiles
- 3.8k
- Forks
- 316
- Merge moyen
- 2 h 29 min
- PR mergées (30 j)
- 5
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de reactjs/react-docgen
-
Support Babel 8 in babelParser (loadPartialConfigSync)Peut-être pris @Stanzilla l’a pris il y a 88 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
reactjs/react-docgen#1102 ·
-
Typescript StatusOuverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 20/100
reactjs/react-docgen#1005 · 4 réactions ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 48/100
reactjs/react-docgen#997 ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 42/100
reactjs/react-docgen#994 · 1 commentaire ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 25/100
reactjs/react-docgen#982 · 2 commentaires ·
Toutes les issues de reactjs/react-docgen
Issues similaires
-
Add: CanalPlusActionEurope.nlOuvertecheck:passed streams:add
Difficulté 1/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 2 jours
-
beta technical-medium ui
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
walletbeat/walletbeat#1625 ·
Les mainteneurs répondent en général sous 1 jour
-
[Good First Issue]: Add unit tests for NetworkVersionInfoPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. OuverteGood First Issue hacktoberfest
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
hiero-ledger/hiero-sdk-js#4489 ·
Les mainteneurs répondent en général sous 1 jour
-
[Bug] The clients language filter cannot select the rows the page labels as unknownPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
apache/rocketmq-dashboard#6103 ·
Les mainteneurs répondent en général sous 4 jours
-
Bug
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
payloadcms/payload#18652 ·
Les mainteneurs répondent en général sous 1 jour