React Native를 사용할때, fetch후에 setState 함수를 사용하면 원하는 값이 설정되지 않는 경우가 있었다.
그 이유는 함수가 비동기적으로 실행되기 때문인데, 이는 async()와 await를 사용해서 해결할 수 있다.
useEffect(async())=>{
try{
const res = await fetch(url);
const result = await res.json();
if(res.ok){
setState(result);
setError(null);
}else{
throw result;
}
} catch(error){
setError(error);
}
}, []};
setState, fetch, Asyncstorage.getItem 등이 비동기적으로 실행되기때문에 async와 await를 사용해서 동기화를 시켜줄 필요가 있다.
'ReactNative' 카테고리의 다른 글
ReactNative - 뒤로가기시 useEffect (0) | 2021.11.17 |
---|---|
ReactNative - 화면 길이 구하기 (0) | 2021.11.17 |
ReactNative - Firebase 연동 (0) | 2021.10.22 |
node_modules와 깃헙 (0) | 2021.10.15 |
ReactNative의 특징과 React와의 차이 (0) | 2021.10.13 |