ReactNative

async() 사용

밍상 2021. 6. 25. 14:18

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를 사용해서 동기화를 시켜줄 필요가 있다.