7 votes

comment est-il possible d'utiliser le flowtype pour définir une prop dans le contexte de réaction d'un composant ?

Lorsque vous utilisez Type de flux pour définir un prop dans le contexte de cette façon

// @flow
type MyType = Object;
class CustomView extends React.Component {
    static childContextTypes = {
        someProp: MyType
    }
    getChildContext() {
        return {
            someProp: this.props.someProp
        };
    }
}

J'ai obtenu l'erreur suivante :

CustomView : spécification du type de contexte enfant someProps est invalide ; la fonction de vérification de type doit retourner null ou un Error mais a retourné un objet. Vous avez peut-être oublié de passer un argument à le créateur du vérificateur de type (arrayOf, instanceOf, objectOf, oneOf, oneOfType, et shape nécessitent tous un argument).

Je suis donc obligé d'utiliser propTypes.object au lieu de Object .

4voto

Jesse Hallett Points 354

Non, vous ne pouvez pas utiliser un type de flux comme un type dans childContextTypes . La raison en est que childContextTypes est vérifiée au moment de l'exécution, et les types de flux n'ont pas de représentation au moment de l'exécution. Par conséquent, les "types" dans childContextTypes doivent être des valeurs - plus précisément les valeurs fournies par l'option prop-types paquet npm.

L'utilisation de MyType dans votre exemple est en fait une erreur de syntaxe : MyType apparaît à la place de la valeur d'une propriété d'objet qui doit être une valeur et non un type.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X