2016-06-15 9 views
0

Ich habe eine Komponente in Reaktion definiert durch erweitert React.Component. Innen ist es, zusammen mit dem Verfahren macht, ist:Kann die Pfeilfunktion nicht speichern in/var in React Component

constructor(props, context) { 
    super(props, context); 

    this.state = { 
     open: false, 
    }; 
} 

handleClose =() => { //this works 
    this.setState({open: false}); 
}; 

handleOpen =() => { //this works 
    this.setState({open: true}); 
}; 

let empty =() => {}; // does not work, error Parsing error:  Unexpected token 

Ich scheine einen unerwarteten Token Fehler zu bekommen, wenn ich eine der Pfeils Funktionen mit let oder const Präfix. Fehle ich hier etwas?

dank

+0

* "Fehle ich hier etwas?" * Es ist einfach keine gültige Syntax. Nicht sicher, welche Art von Antwort du erwartest ... –

Antwort

2

Lesen Sie babel documentation über Klassen. let oder const ist nicht Teil von ES6 möglich Präfix für Klassen Definition

0

Die ECMA 2015 spec scheint nur methods und static methods im Körper einer Klassendefinition zu ermöglichen.

Also, in diesem Fall Zuweisungsanweisungen sind nicht erlaubt, daher die Unexpected token Fehler von babel.

0

Sie versuchen, experimentelle ES7-Funktionen zu verwenden und wahrscheinlich nur ES6 aktiviert haben (auch können Sie nicht let oder const in einer Klasse). Wenn Sie babel6 verwenden, sollte es einfach sein, zum richtigen Plugin zu wechseln. Siehe diese Antwort von im Grunde die gleiche Frage: How to use ES6 arrow in class methods?

0

Sie scheinen die Verwendung der class properties declartion proposal. Die vorgeschlagene Syntax:

class ClassWithoutInits { 
    myProp; 
} 

class ClassWithInits { 
    myProp = 42; 
} 

Wie Sie sehen können, keine let oder const oder var. let empty =() => {}; funktioniert nicht, weil es keine gültige Syntax ist, genau wie die Fehlermeldung Ihnen sagt.

Verwandte Themen