Реагировать компонент - продолжить работу, даже если не отображается - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть приложение React на одной странице. Приложение. js решает, какую страницу показывать, согласно информации с сервера. Есть компонент Секундомер, который отображается только на 2 страницах. Это код из приложения. js:

render() {
  switch (this.state.patientState) {
      case statesEnum.WAITING:
        main = <WaitingPage socketClient={this.socketClient} />;
        break;
      case statesEnum.TURN_ARRIVED:
        main = <TurnArrivedPage />;
        break;
      case statesEnum.END:
        return <EndPage />; // Because we don't need a stopper here...
      default:
        return <h1>Error...</h1>;
   }

   return (
     <main>
       <Stopwatch initialSeconds={this.state.seconds} initialMinutes={this.state.minutes} initiallHours={this.state.hours} />
       {main}
     </main>
   );
}

Но я хочу, чтобы ограничитель продолжал считать, даже если он не отображается на экране. Что я могу сделать?

Спасибо!

1 Ответ

0 голосов
/ 24 апреля 2020

Так что спасибо @developer, эта return из App.js render функция:

return (
  <main>
    <StopwatchManager
      showStopwatch={showStopwatch}
      initialSeconds={this.state.stopwatchInitialData.seconds}
      initialMinutes={this.state.stopwatchInitialData.minutes}
      initialHours={this.state.stopwatchInitialData.hours}
    />
    {main}
  </main>
);

StopwatchManager содержит все функции секундомера. Он всегда отображается, но решает показать секундомер с помощью showStopwatch реквизита.

...