더북(TheBook)

15.5.4 컴포넌트 만들기

게시글의 정보를 보여줄 컴포넌트와 댓글 목록을 보여줄 컴포넌트를 준비합시다. 우선 components 디렉터리에 ArticleView 컴포넌트를 다음과 같이 작성해보세요.

components/ArticleView.tsx

import React from 'react';
import {View, StyleSheet, Text} from 'react-native';

export interface ArticleViewProps {
  title: string;
  body: string;
  publishedAt: string;
  username: string;
}

function ArticleView({title, body, publishedAt, username}: ArticleViewProps) {
  const formattedDate = new Date(publishedAt).toLocaleString();

  return (
    <View style={styles.block}>
      <Text style={styles.title}>{title}</Text>
      <Text style={styles.username}>{username}</Text>
      <Text style={styles.date}>{formattedDate}</Text>
      <View style={styles.separator} />
      <Text>{body}</Text>
    </View>
  );
}

const styles = StyleSheet.create({
  block: {
    paddingTop: 24,
    paddingBottom: 64,
    borderBottomColor: '#eeeeee',
    borderBottomWidth: 1,
    marginBottom: 16,
  },
  title: {
    fontSize: 16,
    fontWeight: 'bold',
  },
  username: {
    fontSize: 12,
    marginTop: 16,
    fontWeight: 'bold',
  },
  date: {
    marginTop: 4,
    fontSize: 12,
    color: '#546e7a',
  },
  separator: {
    marginTop: 24,
    marginBottom: 24,
    height: 1,
    backgroundColor: '#eeeeee',
  },
});

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