2016-05-12 21 views
0

を私はエラーを取得しています:が反応:デフォルトの小道具のエラー

static propTypes = { 
    account: PropTypes.string.isRequired 
}; 

static defaultProps = { 
    account: '' 
}; 

私は何をしないのです。ここで

Unexpected token (14:21) 
    12 | class MeetingMap extends React.Component { 
    13 | 
> 14 |  static propTypes = { 
    |     ^
    15 |   accountId: PropTypes.string.isRequired 
    16 |  }; 
    17 | 

は、コードのですか?ありがとうございました。

+0

あなたのコードをES7に変換しますか? – madox2

+0

私はこれを好きにして、MeetingMap.defaultProps = {account: ''} 'をクラスの下に配置してエクスポートしました。 –

答えて

2

あなたの質問に関連するthis GitHub issueに見られるように、クラスプロパティはES7のステージ0の提案です。この機能を使用するには、Babel stage 0 presetが必要です。それ以外の場合は、React docsに示すように、propTypeを追加するデフォルトの方法を使用する必要があります。

import React, { Component, PropTypes } from 'react'; 

class Counter extends Component { 
    constructor(props) { 
    super(props); 
    this.state = {count: props.initialCount}; 
    this.tick = this.tick.bind(this); 
    } 
    tick() { 
    this.setState({count: this.state.count + 1}); 
    } 
    render() { 
    return (
     <div onClick={this.tick}> 
     Clicks: {this.state.count} 
     </div> 
    ); 
    } 
} 

Counter.propTypes = { initialCount: PropTypes.number }; 
Counter.defaultProps = { initialCount: 0 }; 

export default Counter; 
+0

ありがとうございました。ステージ0をES7に使用すると、propTypesとdefaultPropsをクラスの静的プロパティとして使用できますか? –

+1

はい。プリセットまたはトランスフォームを直接使用することができます。 http://babeljs.io/docs/plugins/transform-class-properties/ – mgmcdermott

+0

これはまだ動作しません:http://jsfiddle.net/egs9L2r2/1/ – FDisk

関連する問題