reactjs / reactjs/react-docgen
Missing support for Flow Unions
Personne n'a encore pris cette issue.
- Langage dominant
- TypeScript
- Étoiles
- 3.8k
- Forks
- 316
- Merge moyen
- 5 h 7 min
- PR mergées (30 j)
- 4
Description
react-docgen doesn't recognize the props if it's an union type:
type BaseProps = {|
label: string,
|};
type LinkButtonProps = {|
...BaseProps,
href: string,
target?: string,
rel?: string,
|};
type ButtonProps = {|
...BaseProps,
type?: 'button' | 'submit',
|};
type Props = ButtonProps | LinkButtonProps;
class MyButton extends React.Component<Props> {
render() {
// conditionally render `<a>` or `<button>` based on props...
}
}
I don't want users to pass props that are specific to <a> at the same time as some props that are specific to <button> - I know this kind of pattern of having a single component render to <a> or <button> is "weird", but some of our legacy components use it...
For now I need to define a single type that includes all the props and mark them all as optional - which is "fine", I guess..
More info about unions here: https://flow.org/en/docs/types/unions/
tested on v3.0.0-beta10
Guide de contribution
Ouvrir 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.
Piste de recherche
Reproduisez l’exemple de l’issue avec react-docgen v3.0.0-beta10 et comparez le résultat avec les props attendues pour l’union. Lisez la documentation liée sur les unions Flow et suivez le point d’entrée du parser qui gère les props des composants. C’est terminé lorsque les membres de l’union sont reconnus sans obliger les utilisateurs à aplatir toutes les props en un seul type optionnel.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- javascript, react
- Domaine
- devtools, documentation
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100