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>
    );
  }
}