我正在尝试使用setTimeout方法更改循环中的状态。我在我的构造函数中声明了一个默认状态,如此
constructor(){
super();
this.state = {
postType:'star_rating'
}
}
我想在5秒内改变状态,这是我能够实现的
setTimeout(() => {
this.setState({
postType: 'image_poll'
});
}, 5000);
问题是在5秒之后它应该将其改为另一种状态。再过5秒后,状态变化应该从头开始重复。 总而言之,国家应该像这样改变
A - > B - > C - > A - > B - > C - > A - > B - > C .......不断这应该发生。我怎么能这样做?
答案 0 :(得分:2)
这只是一个简单的状态机。这是一种可能的实现方式:
getNextState() {
if (this.state.postType === 'star_rating')
return { postType: 'image_poll' };
if (this.state.postType === 'image_poll')
return { postType: 'third_state' };
return { postType: 'star_rating' };
}
和
{=INDEX($I$24:$I$37,MATCH(1,INDEX(($J$24:$J$37=LARGE(ABS($J$24:$J$37),ROWS(I$42:I42)))*(COUNTIF(I$42:I42,$I$24:$I$37)=0),),0))]}