2017-07-08 7 views
0

Ich beginne mit meinem Reaktionsprojekt auf VS2013 zusammen mit ASP.NET MVC. Ich habe Webpack konfiguriert und Konfiguration schien gut zu funktionieren, bis ich versuchte, die folgende Klasse zu implementieren.ReactJS - Unerwartetes Token '.' Fehler

class Hello extends React.Component { 
    this.state = { visible: true } 
    render() { 
     /** Method definition **/ 
    ... 
} 

Ich erhalte einen Fehler Unerwarteter Token bei '.' bei "this.state". Ich habe bereits überprüft es205 ist als Babel voreingestellt. Wenn ich die Status- und toggleVisibility-Zuweisungen entferne, werden die Webpack-Pakete als "OK" bezeichnet.

Irgendeine Idee, was kann ich sonst noch versuchen?

Antwort

0

Es ist eine Klasse, so dass die korrekte Syntax

class Hello extends React.Component { 
    state = { visible: true } 
    render() { 
     /** Method definition **/ 
    ... 
} 

Auch sein sollte, sollte der empfohlene Weg Anfangszustand der Definition

class Hello extends React.Component { 
    constructor(props) { 
     super(props) 
     this.state = { visible: true } 
    } 

    render() { 
     /** Method definition **/ 
    ... 
} 
0
sein

Sie this.state in einem Konstruktor wie

constructor(props) { 
    super(props); 
    this.state = { 
    visible: true 
    }; 
} 
definieren sollte

Daher sollte Ihr Code

01 sein
class Hello extends React.Component { 
    constructor(props) { 
    super(props); 

    this.state = { 
     visible: true 
    }; 
    } 

    render() {} 
} 

Von React docs:

Der Konstruktor ist der richtige Ort, um Zustand zu initialisieren. Wenn Sie den Status nicht initialisieren und Methoden nicht binden, müssen Sie keinen Konstruktor für Ihre React-Komponente implementieren.