>  Q&A  >  본문

useState가 업데이트되지 않았습니다.

내 useState가 여전히 비어 있는 이유를 알려주실 수 있나요? 업데이트하고 싶지 않습니다. setInteraval과 함수를 사용하여 데이터를 업데이트하고 현재 시간에 useState를 설정하려고 하는데 useState가 setTimeOut(res)의 formatTime을 무시합니다. 문제를 해결하는 방법을 알려주실 수 있나요?

EDIT: 숫자를 useState

에 넣으면 으아악

1초간 나타났다가 사라지고 빈 필드가 있습니다. setInterval이 내부의 모든 것을 삭제하는 것 같은데 어떻게 수정합니까?

const [timeOut, setTimeOut] = useState(30)

P粉245003607P粉245003607424일 전534

모든 응답(2)나는 대답할 것이다

  • P粉103739566

    P粉1037395662023-09-15 17:42:24

    이는 시간 초과 내에 상태를 설정하기 때문일 가능성이 높습니다.

    또 다른 문제는 내부에서 setTimeout을 호출한다는 것입니다.

    대신 이전 상태를 기반으로 새 값을 반환하는 함수를 사용하세요.

    useState 接受一个函数,该函数接收 previousState 매개변수

    으아아아

    회신하다
    0
  • P粉990008428

    P粉9900084282023-09-15 09:23:00

    문제는 setInterval이 1초마다 실행되고 1초마다 상태(timeOut)를 업데이트한다는 것입니다.

    또한 formatTime 함수에서는 createAt 시간 대신 현재 시간(new Date().getTime())을 사용하고 있습니다. 따라서 상태는 매초마다 새로운 값으로 지속적으로 업데이트됩니다.

    업데이트된 코드입니다.

    으아아아

    회신하다
    0
  • 취소회신하다