2016-06-20 6 views
5

반응에 'enum'유형의 속성을 지정하는 데 문제가 있습니다. 여기 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와 관련된 것이라고 알고 있었지만 그것을 고칠 수 없었다 ... 고마워. –