2016-06-20 8 views
5

「enum」型のプロパティをreactに指定する際に問題があります。ここReact multiple components次のスニペットは動作するはずのドキュメントによると:React PropTypes.oneOfで列挙型を指定できない

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

しかし、私は次のエラー

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 | } 

を取得し、私はエラーである理解していませんか?多分、新しいES6の構文に関連するものでしょうか?

+0

これは構文エラーであるため、特に「oneOf」とは関係ありません。 –

+0

@FelixKlingしたがって、 'oneOf'のドキュメントと実装の間に不一致があります。ドキュメントには、配列を引数として取る関数がありますが、そうではありません。それは何ですか? –

+0

再度、ランタイムエラーではなく、その**構文**エラーです。問題は 'oneOf'関数や渡した値ではありません。ファイルに入力した文字が問題になります(簡略化)。しかし、なぜそこにエラーを起こすのだろう、私は知らない。 –

答えて

13

ES6構文では、ReactのpropTypeは静的プロパティとして定義する必要があります。したがって、唯一の違いはpropType宣言にあるはずです。

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

完全に動作します!私はそれがES6に関係するものだと知っていましたが、私はそれを修正できませんでした...ありがとう –

関連する問題