Мне нужно отобразить точное время (часы:минуты:секунды) на странице рядом с точным временем, которое прилетает с сервера. У меня есть компонент:
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 решает эту проблему и создает другую (описал вначале). Если есть идеи или кейсы, буду рад узнать!