2017-07-03 7 views

Antwort

0

Die Sache ist, dass Funktionen innerhalb ReactJS setState() funktioniert nur mit this.state und this.props Objekt. Daher müssen Sie zuerst einen Preis Immobilie zu this.state (this.state.price) erstellen und dann mit ihm in setState so betreiben:

addTotal(price){ 
     this.setState({price: price, total: this.state.total}); 
     this.setState(function(prevState, props) { 
      return {total: prevState.total + prevState.price}; 
     }); 
    } 
0

Siehe Abschnitt über State Updates May Be Asynchronous und verwenden Sie die prevState statt this . Außerdem ist die Funktionssignatur nicht korrekt. Es sollte so aussehen

addTotal(price){ 
     this.setState(function(prevState, props) { 
      return {total: prevState.total + price}; 
     });  
    } 
0

Sie sollten die Funktion einen Wert übergeben und den zurückgegebenen Wert in den Status speichern. Die Art, wie Sie versuchen, das Problem zu lösen, scheint unlogisch zu sein. Versuchen Sie Folgendes:

addTotal(price){ 
    let { total } = this.state; 
    total = total + price; 
    this.setState({total};  
} 
Verwandte Themen