Closed leegwae closed 1 year ago
useCurrentDate
export function TimeDiff({ target }: Props): JSX.Element { const now = useCurrentDate(); return <div>{formatTimeDifference(now, target)}</div>; } <ul> {questionList.map(question => <li><TimeDiff target={questioin.createdAt}></li>)} <ul>
now
map
import React from 'react'; import { useCurrentDate } from '@/hooks/useCurrentDate'; import { formatTimeDifference } from './InfiniteQuestionList'; interface Props { start: Date; target: Date; } export function TimeDiff({ start, target }: Props): JSX.Element { const now = useCurrentDate({ start }); return <div>{formatTimeDifference(now, target)}</div>; }
현재 상황
useCurrentDate
로 1초마다 업데이트되는 상태 사용하고 있음 => 1초마다 질문 목록 전체 렌더링문제
now
를 가지게 될 수도 있음(map
으로 돌리는 동안 시간이 지나기 때문임)해결
useCurrentDate
가 초기값을 받게 해서 일종의 타이머처럼 만들면 됨. delay마다 초기값+delay해주는 훅으로 만들면 됨