Javascript 从倒计时子项反应设置状态
我有一个Javascript 从倒计时子项反应设置状态,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我有一个组件,我想保存它自己的逻辑,这样它就可以在应用程序中的其他地方重用 我正在努力思考,当计数达到0时,如何将同级组件上的状态设置为“显示:true”(即) 目前,这是组件的层次结构: 导出默认类应用程序扩展组件{ 状态={show:false}; render(){ 返回( ); } } 我想展示一个 我的难题是,如果我要将currentCount的状态提升到主中,请在应用程序中定义一个方法,将状态显示设置为true: onFinish = () => { this.set
组件,我想保存它自己的逻辑,这样它就可以在应用程序中的其他地方重用
我正在努力思考,当计数达到0时,如何将同级组件上的状态设置为“显示:true”(即
)
目前,这是组件的层次结构:
导出默认类应用程序扩展组件{
状态={show:false};
render(){
返回(
);
}
}
我想展示一个
我的难题是,如果我要将
currentCount
的状态提升到主中,请在应用程序中定义一个方法,将状态显示
设置为true:
onFinish = () => {
this.setState({ show: true });
};
现在将其作为道具发送到倒计时:
<Countdown onFinish={this.onFinish} />
现在,一旦您的本地状态为零,就调用它:
if (this.state.currentCount < 1) {
clearInterval(this.intervalId);
this.props.onFinish();
}
if(this.state.currentCount<1){
clearInterval(此为有效期);
this.props.onFinish();
}
这是
我还移动了setState回调上的最后一部分代码,因为setState以异步方式工作。您可以在中创建showList()
。谢谢!谢谢,我接受了另一个答案,因为他们提供了相同的方法。
<Countdown onFinish={this.onFinish} />
if (this.state.currentCount < 1) {
clearInterval(this.intervalId);
this.props.onFinish();
}
timer() {
this.setState({
currentCount: this.state.currentCount - 1
});
//clear interval
if (this.state.currentCount < 1) {
clearInterval(this.intervalId);
//This line is edited
this.props.showList();
}
}
export default class App extends Component {
state = { show: false };
showList = () =>{
this.setState({show:true});
}
render() {
return (
<div className="App">
<Countdown showList={this.showList}/>
<List {...this.state} />
</div>
);
}
}