이번에 만들 컴포넌트는 post의 경우 titlebody만 보여 주고, user의 경우 usernameemail만 보여 줄 것입니다.

    Sample 컴포넌트를 다음과 같이 작성해 보세요.

    components/Sample.js

    import React from 'react';
    
    const Sample = ({ loadingPost, loadingUsers, post, users }) => {
      return (
        <div>
          <section>
            <h1>포스트</h1>
            {loadingPost && '로딩 ...'}
            {!loadingPost && post && (
              <div>
                <h3>{post.title}</h3>
                <h3>{post.body}</h3>
              </div>
            )}
          </section>
          <hr />
          <section>
            <h1>사용자 목록</h1>
            {loadingUsers && '로딩 ...'}
            {!loadingUsers && users && (
              <ul>
                {users.map(user => (
                  <li key={user.id}>
                    {user.username} ({user.email})
                  </li>
                ))}
              </ul>
            )}
          </section>
        </div>
      );
    };
    
    export default Sample;

     

    데이터를 불러와서 렌더링해 줄 때는 유효성 검사를 해 주는 것이 중요합니다. 예를 들어 post &&를 사용하면 post 객체가 유효할 때만 그 내부의 post.title 혹은 post.body 값을 보여 줍니다. 만약 데이터가 없는 상태라면 post.title을 조회하려고 할 때 자바스크립트 오류가 발생하니 반드시 유효성을 검사해 주어야 합니다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.