use setState instead of mutating this.state itself