Обновлять состояние в редукции в фоновом режиме через каждые несколько минут в ReactJS - PullRequest
0 голосов
/ 06 августа 2020

Есть ли способ запустить фоновый процесс, который запускал бы функцию каждые несколько минут для вызова серверного API и обновления состояния redux. Это большое приложение на React, состоящее из множества компонентов. Это влияет глобально, поэтому я ищу для этого только фоновый процесс.

Я ищу, делал ли кто-то это раньше или использовал ли для этого ReactJS библиотеку.

Ответы [ 2 ]

2 голосов
/ 06 августа 2020

Создайте компонент типа BackgroundTask и поместите его на свою страницу с помощью useEffect внутри:

useEffect(() => {
  const timer = setInterval(() => {
    // call you action here
  }, 5000);
  return () => clearInterval(timer)
}, [])

И добавьте его в компонент App:

export default App => (
      <Provider store={store}>
        <BackgroundTask/>
        ... rest of your app ...
     </Provider>
);
0 голосов
/ 06 августа 2020

Вы можете добиться этого, используя функцию setTimeout().

Все, что вам нужно сделать, это внутри вашего основного root компонента, предположим, что ваш root компонент - App.js. вы можете сделать следующее.

import React, { useEffect } from 'react';

const App = () => {
  
  useEffect(() => {
    const timer = setTimeout(() => {
      /* Your API call */
    }, 1000);
    return () => clearTimeout(timer);
  }, []);

  return (
    <div>
      /* allYourComponents */
    </div>
  );
};

export default App;
...