Hey,
I’m currently working on the Pomodoro challenge but now I’ve gotten stuck when trying to change a boolean (session) in the state.
According to another thread on the forum this should work:
toggleStatus = () => {
this.setState({
session: !this.state.session
});
console.log(this.state.session);
}
The boolean starts as true and when I run the method it should return false, but still returns true.
When I edit the code to “this.state.session: !this.state.session” it seems to work but I get an error stating “this is a reserved word” so that’s not an ideal solution 
full code can be viewed here: https://codepen.io/MarijkeBroos/pen/XoMdaY?editors=0011
1 Like
setState is asynchronous…
1 Like
Thanks for the replies, I wasn’t expecting setState to operate like this (it collects setStage callbacks in batches and then executes it?), but I’m glad that I got this learning moment still in the early stages of the project XD
At the moment session switches to false at least before I reset the timer, but would it be recommended to use a boolean in the state if changes constantly? (asking for other continuously changing variables as well)
1 Like
Not sure if this gonna be of any help but i was doing simple react timer app where i found out that you could use “prevState” in setState callback, which could be useful in cases with frequent state changes.
incTime() {
this.setState(prevState => ({
timerTime: prevState.timerTime + 1,
}));
}
So you could do some checking if prevState is what you want it to be or something like that.