• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

setState 비동기 처리관련질문입니다.

20.10.30 17:17 작성 조회수 282

3

제가 setState가 비동기처리이면서 배치이다 라는것을 보면서 궁금한 점이생겼는데요.. onAdd함수를 보면 currentId를 1증가시키고, todo변수에 값을 할당한뒤 setTodoList에 값을 넣어서 렌더링하는 순서인데요. 만약에 동기처리처럼 onAdd버튼을 클릭시 currentId에 1을 증가한후, 그값을 todo에 넣은뒤 그 값을 setTodoList에 반영 하고 싶다고면 어떻게 해야할까요?

답변 3

·

답변을 작성해보세요.

2

안녕하세요
간단하게는 아래와 같이 할 수 있습니다

const newId = currentId + 1;
setCurrentId(newId);
const todo = { id: newId, desc };

만약 상태값 변경 함수로만 하고싶다면 currentId와 todoList를 하나의 useReducer 로 관리하는 방법도 있습니다.

0

koko2님의 프로필

koko2

질문자

2020.10.30

다시 간단히 말하면 onadd버튼 클릭시 todo값에 currentId+1된값이 적용되게 하고싶다는 말이었습니다. 

0

koko2님의 프로필

koko2

질문자

2020.10.30

강의내용으로보면 id값은 useState의 initial value값이 적용된게 렌더되고 그 이후 +1이 됩니다. 그리고 다음번에 그 값이 적용되는 순서인데 저는 onAdd클릭시 바로 변경된값을 적용시키려면 혹시 어떻게 해야하는지 궁금해서 여쭈어봅니다.