ReactJS: Warning: setState(...): Cannot update during an existing state transition
Looks like you're accidentally calling the handleButtonChange
method in your render method, you probably want to do onClick={() => this.handleButtonChange(false)}
instead.
If you don't want to create a lambda in the onClick handler, I think you'll need to have two bound methods, one for each parameter.
In the constructor
:
this.handleButtonChangeRetour = this.handleButtonChange.bind(this, true);this.handleButtonChangeSingle = this.handleButtonChange.bind(this, false);
And in the render
method:
<Button href="#" active={!this.state.singleJourney} onClick={this.handleButtonChangeSingle} >Retour</Button><Button href="#" active={this.state.singleJourney} onClick={this.handleButtonChangeRetour}>Single Journey</Button>
I am giving a generic example for better understanding, In the following code
render(){ return( <div> <h3>Simple Counter</h3> <Counter value={this.props.counter} onIncrement={this.props.increment()} <------ calling the function onDecrement={this.props.decrement()} <----------- onIncrementAsync={this.props.incrementAsync()} /> </div> ) }
When supplying props I am calling the function directly, this wold have a infinite loop execution and would give you that error, Remove the function call everything works normally.
render(){ return( <div> <h3>Simple Counter</h3> <Counter value={this.props.counter} onIncrement={this.props.increment} <------ function call removed onDecrement={this.props.decrement} <----------- onIncrementAsync={this.props.incrementAsync} /> </div> ) }
That usually happens when you call
onClick={this.handleButton
()}
- notice the () instead of:
onClick={this.handleButton
} - notice here we are not calling the function when we initialize it