I have a react class with two methods. They are both called at the same time with onclick.
One method gets a new quote/author (getQuote) and another changing the screen color (changeColor).
All the test pass (random quote machine).
The changeColor method also includes a transition with a delay and transition period.
I added a setTimeout with the getQuote method to help with this delay, but is that enough ? I hope I don’t need to use promises or such
Also, there’s this method:
does it correctly check to see if the previous index is the same and if it is get another index ? So no two quotes are the same right after each other.
getIndex(times){
const tempIndex = Math.floor(Math.random() * times);
this.setState(
prevState => {
newIndex: tempIndex;
prevIndex: prevState.newIndex;
while(this.state.newIndex ===this.prevIndex){
tempIndex = Math.floor(Math.random() * times);
}
return {
newIndex: tempIndex,
prevIndex: prevState.newIndex,
};
}
);
}
It seems to run correctly, I’m just confused why this.state.prevIndex causes an error, so it’s this.prevIndex instead.
Thanks