2016-06-20 1 views
5

J'ai un problème pour spécifier une propriété de type 'enum' dans rea. Selon la documentation ici React multiple components l'extrait suivant devrait fonctionner:Réagir PropTypes.oneOf pour spécifier une énumération ne fonctionne pas

position : React.PropTypes.oneOf(['rightTop','rightBottom']) 

Mais j'obtiens l'erreur suivante

ERROR in ./app/components/mqttComponents/mqttPresence.jsx 
Module build failed: SyntaxError:/Users/giuseppe/Projects/sw-director/app/components/mqttComponents/mqttPresence.jsx: Unexpected token (68:36) 
66 | propTypes : { 
67 |  //position: React.PropTypes.string.isRequired, 
> 68 |  position : React.PropTypes.oneOf(['rightTop','rightBottom']), 
             ^
69 |  showMqttClientStatus : React.PropTypes.bool.isRequired, 
70 |  mqtt: React.PropTypes.object 
71 | } 

Je ne réalise pas ce qui est l'erreur? Peut-être est-ce quelque chose lié à la nouvelle syntaxe ES6?

+0

Comme il s'agit d'une erreur de syntaxe, cela n'a rien à voir avec 'oneOf' spécifiquement. –

+0

@FelixKling Je sais, il y a donc une discordance entre la documentation de 'oneOf' et son implémentation. Selon la documentation, une fonction prend un tableau comme argument alors que ce n'est pas le cas. Alors c'est quoi ? –

+0

Encore une fois, c'est une erreur ** syntaxe **, pas une erreur * runtime *. Le problème n'est pas avec la fonction 'oneOf' ou la valeur que vous transmettez. Le problème est avec les caractères que vous avez tapés dans le fichier (simplifié). Mais pourquoi y aurait-il une erreur, je ne sais pas. –

Répondre

13

Avec la syntaxe ES6, les propTypes dans React doivent être définis comme une propriété statique. La seule différence devrait donc être dans la déclaration propTypes.

static propTypes = { 
    position : React.PropTypes.oneOf(['rightTop','rightBottom']), 
    showMqttClientStatus : React.PropTypes.bool.isRequired 
} 
+0

Cela fonctionne complètement !! Je savais que c'était quelque chose lié à ES6 mais je ne pouvais pas le réparer ... Merci –