2016-05-12 17 views
0

ich Störung erhalte:Reagieren: default Requisiten Fehler

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

Hier Code:

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

static defaultProps = { 
    account: '' 
}; 

Was bin ich? Vielen Dank.

+0

übertragen Sie Ihren Code zu ES7? – madox2

+0

Ich habe es so gemacht und es funktioniert 'MeetingMap.defaultProps = {account: ''}', unter der Klasse positioniert und dann exportiert. –

Antwort

2

Wie Sie in this GitHub issue zu Ihrer Frage sehen können, sind Klasseneigenschaften ein Vorschlag für Stufe 0 für ES7. Wenn Sie diese Funktion verwenden möchten, benötigen Sie die Babel stage 0 preset. Andernfalls müssen Sie die Standardmethode zum Hinzufügen von propTypes verwenden, wie in der React docs gezeigt.

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

Vielen Dank für Ihre Mühe. Wenn ich Stufe 0 für ES7 verwende, könnte ich propTypes und defaultProps als statische Eigenschaft der Klasse verwenden? –

+1

Ja. Sie können das Preset oder die Transformation direkt verwenden. http://babeljs.io/docs/plugins/transform-class-properties/ – mgmcdermott

+0

Aber das funktioniert immer noch nicht: http://jsfiddle.net/egs9L2r2/1/ – FDisk

Verwandte Themen