더북(TheBook)

6.3.2.2 WriteEditor 만들기

이번에는 WriteEditor 컴포넌트를 만들어봅시다. 이 컴포넌트에서는 TextInput을 두 개 사용해 제목과 내용을 작성하는 기능을 구현할 것입니다.

components 디렉터리에 다음 파일을 작성해보세요.

components/WriteEditor.js

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

function WriteEditor({title, body, onChangeTitle, onChangeBody}) {
  return (
    <View style={styles.block}>
      <TextInput
        placeholder="제목을 입력하세요"
        style={styles.titleInput}
        returnKeyType="next"
        onChangeText={onChangeTitle}
        value={title}
      />
      <TextInput
        placeholder="당신의 오늘을 기록해보세요"
        style={styles.bodyInput}
        multiline
        textAlignVertical="top"
        onChangeText={onChangeBody}
        value={body}
      />
    </View>
  );
}

const styles = StyleSheet.create({
  block: { flex: 1, padding: 16 },
  titleInput: {
    paddingVertical: 0,
    fontSize: 18,
    marginBottom: 16,
    color: "#263238",
    fontWeight: "bold",
  },
  bodyInput: {
    flex: 1,
    fontSize: 16,
    paddingVertical: 0,
    color: "#263238",
  },
});

export default WriteEditor;

두 번째 TextView를 보면 multiline Props에 값이 지정되지 않은 것처럼 보이지요? 컴포넌트를 사용할 때 이렇게 Props의 이름만 쓰고 따로 값을 지정하지 않으면 값이 true로 지정됩니다. 즉, multiline={true}와 동일한 코드입니다. TextView에 이 값이 true로 설정되면 여러 줄을 작성할 수 있습니다.

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