내 useState가 여전히 비어 있는 이유를 알려주실 수 있나요? 업데이트하고 싶지 않습니다. setInteraval과 함수를 사용하여 데이터를 업데이트하고 현재 시간에 useState를 설정하려고 하는데 useState가 setTimeOut(res)의 formatTime을 무시합니다. 문제를 해결하는 방법을 알려주실 수 있나요?
EDIT: 숫자를 useState
에 넣으면 으아악1초간 나타났다가 사라지고 빈 필드가 있습니다. setInterval이 내부의 모든 것을 삭제하는 것 같은데 어떻게 수정합니까?
const [timeOut, setTimeOut] = useState(30)
P粉1037395662023-09-15 17:42:24
이는 시간 초과 내에 상태를 설정하기 때문일 가능성이 높습니다.
또 다른 문제는 내부에서 setTimeout을 호출한다는 것입니다.
대신 이전 상태를 기반으로 새 값을 반환하는 함수를 사용하세요.
useState
接受一个函数,该函数接收 previousState
매개변수
P粉9900084282023-09-15 09:23:00
문제는 setInterval이 1초마다 실행되고 1초마다 상태(timeOut)를 업데이트한다는 것입니다.
또한 formatTime 함수에서는 createAt 시간 대신 현재 시간(new Date().getTime())을 사용하고 있습니다. 따라서 상태는 매초마다 새로운 값으로 지속적으로 업데이트됩니다.
업데이트된 코드입니다.
으아아아