Задать вопрос
@Marat20
Frontend разработчик

Как отобразить точное время (конкретно секунды) в react компоненте?

Мне нужно отобразить точное время (часы:минуты:секунды) на странице рядом с точным временем, которое прилетает с сервера. У меня есть компонент:

export const TimerFrontend = memo(() => {
  const [date, setDate] = useState(new Date());


  useEffect(() => {
    const animationId = requestAnimationFrame(() => setDate(new Date()));

    return () => {
      cancelAnimationFrame(animationId);
    };
  }, [date]);

  return (
    <>
      <span className="timer__name">Frontend</span>
      <div>{date?.toLocaleTimeString()} </div>
    </>
  );
});


Происходит постоянный мгновенный ререндер компонента из-за использования requestAnimationFrame, я его использую, потому что, если взять setInterval, то там секунды будут с задержкой, а requestAnimationFrame решает эту проблему и создает другую (описал вначале). Если есть идеи или кейсы, буду рад узнать!
  • Вопрос задан
  • 933 просмотра
Подписаться 1 Простой 13 комментариев
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 1
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы