inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

타입스크립트로 배우는 리액트(React.js) : 기초부터 최신 기술까지 완벽하게

(해설) 카운터앱 만들기

선생님 상태변경할때 질문

47

jyl08840

작성한 질문수 4

0

그 선생님은 지금 문제에서 상태 변경할떄

setCount((count) => count +1); 로

해주셨는데

지금 상황에서는 그냥

setCount((count+1)) 로 해도 문제 없지않나용?

버튼 한번 눌렀을때 count+1 되는건 한번이니깐..?

연속으로 +1 증가하는 로직이 아니라서

이렇게 생각되는데 혹시 제가 뭘 놓치고있는건가요?

react react-router redux-toolkit zustand react.js

답변 2

1

수코딩

안녕하세요! 맞습니다.

연속적으로 증가하는 로직이 아니라서 말씀하신 것처럼

setCount((count+1))

라고해도 문제가 없습니다.

제가 그럼에도 불구하고 count => count + 1로 한 건 습관을 들이기 위해서입니다.

AI 인턴이 답변한 것처럼 상태 업데이트 함수는 비동기로 동작하며 가끔식 상태 업데이트 요청이

여러번 겹치면서 의도치 않은 결과를 초래할 수 있습니다.

따라서, 현재 상태와 관련 있는 업데이트는 그게 비록 아무런 문제가 없는 로직이라고 하더라도

습관을 들여놓기 위해서 count => count + 1 처럼 한 것입니다 🙂

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. jyl08840님.

리액트에서 setCount와 같은 상태 업데이트 함수는 비동기로 작동하며, 가끔씩 상태 업데이트 요청이 여러 번 겹치면서 의도치 않은 결과를 초래할 수 있습니다. 그래서 함수 업데이트 형식을 사용하는 것이 더 안전할 수 있습니다.

setCount((count) => count + 1); vs setCount(count + 1);

  1. 함수 업데이트 방식: setCount((count) => count + 1);는 이전 상태 값을 인자로 받아 새로운 상태 값을 계산합니다. 이 방법은 비동기적으로 실행되는 여러 상태 업데이트에서 발생할 수 있는 충돌 문제를 피하게 도와줍니다.

  2. 직접 업데이트 방식: setCount(count + 1);는 현재 렌더링된 시점에서의 count 값을 참조합니다. 만약 여러 업데이트가 비동기적으로 발생한다면, 이 방식은 예측 가능한 결과를 보장하지 않을 수 있습니다.

만약 버튼을 연속으로 누르는 경우나 다른 복잡한 로직이 추가될 가능성이 있다면, 함수 업데이트 방식이 더 안전합니다.

이해에 도움이 될 수 있는 리소스를 추천합니다:
- React에서의 상태 업데이트와 비동기 특성 설명

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

cloudinary 관련

0

41

3

useOptimistic 실전-1 useState

0

62

2

discord 초대장 갱신이 필요한거같습니다.

0

63

1

할일 관리 앱(메모이제이션)

0

79

2

Web 플랫폼 등록

0

107

2

함수 정의 기준

0

76

2

fetch는 사용되는가

0

75

2

전역상태 관리 선택 기준

0

86

2

tailwind css는 언제 사용되는가 또 다른 css와의 차이

0

154

2

카카오 web플랫폼 등록

0

146

2

컴포넌트 그리고 폴더 구조에 대해

0

59

2

152강 보는중입니다. 초시계부분이구요. 넘버가 timeout을 받을수없다는 에러가 나오고 있어요

0

42

1

폼테그 다른 태그를 하나의 상태 객체로 묶기

0

43

2

class를 className으로 전부 수정하실 때

0

42

2

JWT에 대한 개념도 학습할 수 있나요?

0

64

2

수업자료 다운로드

0

52

2

리액트 객체의 타입을 알기위하여 마우스를 올렸을 때 나오는 형식이 강의와 다른 부분 문의 드립니다.

0

65

2

useState 자동생성 하실때 누른 키보드가 궁금합니다.

0

51

1

타입스크립트 타입이 불일치하는데 에러가 안납니다.

0

75

3

default format >> prettier 이 실행이 안됩니다.

0

65

2

윈도우 사용자입니다. homebrew 윈도우 설치법은 없나요?

0

344

3

리렌더링 관련 문의

0

56

2

공부 방향에 대해서

0

62

2

form action 과 onSubmit

0

59

2