2017-06-26 8 views
1

Ich bin ratlos, meine Reaktion App nicht inkrementiert einen Zähler wie beabsichtigt, statt 1,2,3,4,5 gehen, geht es 1,11,111,1111, 11111 ... Mein Verständnis ist, dass Sie this.state.count ++ nicht tun können, da das den Status ändert, den facebook sagt, nicht zu tun, und sie sagen, dies zu tun.state.count + 1. Ich bin ziemlich neu zu Reagieren und zu schätzen jede Hilfe, die Sie anbieten können! Vielen Dank!Reaktion Zähler nicht inkrementieren, sondern 1 stattdessen

import React, { Component } from 'react'; 
import './App.css'; 

class App extends Component { 
    constructor(){ 
    super(); 
    this.state = { 
     count: '0', 
    } 
    this.incrementCount = this.incrementCount.bind(this); 
    } 
    incrementCount() { 
    this.setState({ 
     count: this.state.count + 1 
    }); 
    } 

    render() { 
    return (
     <div className='app'> 
     <div className='container'> 
     <button onClick={this.incrementCount}>Click to increase bid: 
      {this.state.count}</button> 
     </div> 
    </div> 
    ); 
    } 
} 
export default App; 
+8

Weil Sie 'count' als String deklariert haben ... Do 'count: 0,' – rpadovani

+1

Um @rpadovanis Kommentar hinzuzufügen, welches die richtige Antwort ist, sollten Sie prevState Callback Approach von setState verwenden, wenn Sie das aktualisieren möchten Aktueller Status basierend auf dem vorherigen Wert. Siehe diese Antwort https://stackoverflow.com/questions/44492678/when-does-reacts-setstate-change-the-state/44493095#44493095, da dies andernfalls zu unerwarteten Ergebnissen führen kann, wenn Sie incrementCount berücksichtigen viel schneller als die App ist in der Lage zu aktualisieren –

+0

Interessant, in Ordnung, ich habe diese Änderung auch, danke! – cgraffeo

Antwort

1

Sie haben einen Status als Zeichenfolge, da sie in einfache Anführungszeichen gesetzt wird. Doing + auf einer Zeichenkette verkettet. Entfernen Sie einfach die Anführungszeichen und es wird eine Ganzzahl sein.

+3

Oh mein Gott * Headdesk * Ich fühle mich jetzt so lächerlich. Danke, ich kann nicht glauben, dass ich das verpasst habe. – cgraffeo

Verwandte Themen