React.js, function component style

 

RestAPI 등 외부 API를 적용하여 데이터를 외부에서 받아와서 useEffect Hooks 내에서 데이터를 풀어줄 때의 주의사항 중 한개를 서술한다.

기본적으로 REST API와 같은 외부 데이터들은 promise.then 형식으로 데이터를 받는다.

 

그럴 때 async await을 사용하는데,

React.js useEffect() Hook에서는 async를 직접적으로 사용하면 안된다.

useEffect ( async () => {
	await something...
})

이렇게 사용하면 안된다는 뜻이다.

 

async await을 사용하려면, 내부에서 사용해야한다.

useEffect (() => {
	const result = async () => {
    	const something = await axios.get( ) ...
    }
})

이런 식으로 말이다.

 

왜냐하면 useEffect() Hookvoid 속성을 가져, 반환하는 값이 없다.

그러나 async await이 내뱉는 결과물은 객체 형태이기 때문이다.

 

이상 메모 끝~

 

도움이 되셨다면 광고 한번 클릭해주세요. 블로그 운영에 큰 힘이 됩니다. 감사합니다.

 

반응형

안녕하세요 CodeHoon입니다.

 

이번 글은 렌더링 기초 중의 기초이자 핵심, 컴포넌트 / 함수형으로 랜더링하기 (예제 포함) 입니다.

 

결과물입니다. 출처링크포함

html에서는 h1태그와 img 태그. 이 두가지를 삽입하기만 하면 해당 내용이 출력되어져 편했었죠?

 

리액트에서는 조금 더 들어가야합니다. WebFramework이니까요.

 

<body>
    <div id="root"></div>


    <script type="text/babel">
        class App extends React.Component{
            render(){
                return (
                    <div>
                        <h1>{this.props.name}님, 안녕하세요</h1>
                        <img src={this.props.imgUrl}/>
                    </div>
                )
            }
        }

        // 출력
        const container = document.querySelector("#root")
        ReactDOM.render(
            <App name="애용" imgUrl="https://newsimg.hankookilbo.com/cms/articlerelease/2019/04/29/201904291390027161_3.jpg" />, container 
            )
    </script>
</body>

이곳에서 중요한 점은 저 위 return에서 첫번째줄 <div>를 엔터처리하여 return ; 이 되지 않게 하는 것입니다.

그래서 괄호( ) 를 넣어놓았어요.

 

지난번과 다른점은 함수형인 부분인데요, 

 

바로 클래스 컴포넌트를 이용했다는 점입니다.

 

 

 

반응형

+ Recent posts