[react] useState의 setter 를 동기함수(sync ≒ async ~ await) 처럼 사용할 수 있게 해 주는 방법 (결론: 안됨)

By | 4월 29, 2022

나의 코드 샘플


const [dataList, setDataList] = useState<any[]>();

...

const data = await getData(id);

setDataList(preList => {
  const tmpList = [ ...preList ];
  tmpList[i] = data;
  return tmpList;
});
  • 이것으로 된다고 착각했었으나, 진짜 동기식으로 처리 되는 것이 아니라, setter를 연속 호출 했을 떄, 이전 값이 보존되는 수준의 처리였던 것이다.
  • 진짜 코드 흐름 내에서 동기식으로 처리하려면 useEffect에 defs 및 기타 추가 조건을 거는 수 밖에 없지 않나 싶다.


원본 링크

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments