강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của dororong
dororong

câu hỏi đã được viết

Học React.js thông qua các dự án

07 sử dụng State

state가 업데이트되는 기준이 궁금합니다.

Đã giải quyết

Viết

·

295

0

리렌더링하기 전에 state를 한번에 업데이트 시켜준다고 하셨는데

 const [number, setNumber] = useState(1);
 const double = () => {
  setNumber(number * 2);
  console.log(number);
 };

여기서 state는 number 하나밖에 없는데 double을 실행했을 때 왜 2배가 된 number값이 찍히지 않는거죠? state를 한번에 업데이트시켜주는데 어차피 state가 하나니까 number값이 업데이트되고, 그게 콘솔에 찍힐 것 같은데 말이죠..

 

그리고 만약 const [number1, setNumber1] = useState(1);도 있다고 가정하면

 setNumber(number * 2);
 setNumber1(number1 * 2);
 console.log(number);

위와 같은 경우에 코드는 위에서부터 실행되니까 number와 number1 둘다 업데이트가 된 다음에 콘솔이 찍히는거라 number가 2배된 값일 것 같은데 아닌 이유는 뭐죠? console.log가 set함수보다 먼저 찍히는건가요?

 

답변 미리 감사드립니다!

reactuseState

Câu trả lời 1

0

kossiecoder님의 프로필 이미지
kossiecoder
Người chia sẻ kiến thức

set을 사용하면 비동기적으로 실행됩니다

set 함수가 실행되고 그 다음줄에 console.log는 동기적으로 실행되므로 console.log가 먼저 실행 되게 됩니다

Hình ảnh hồ sơ của dororong
dororong

câu hỏi đã được viết

Đặt câu hỏi