7.3.2 WriteScreen에서 onRemove 함수 사용하기

    이제 우측 상단의 삭제 버튼을 눌렀을 때 onRemove 함수를 호출하도록 구현하겠습니다. 삭제 버튼을 눌렀을 때 바로 삭제하지 않고, Alert.alert를 사용해 사용자에게 정말 삭제할 것인지 한 번 더 물어보는 과정을 거치겠습니다.

    screens/WriteScreen.js

    import {useNavigation} from '@react-navigation/native';
    import React, {useContext, useState} from 'react';
    import {Alert, KeyboardAvoidingView, Platform, StyleSheet} from 'react-native';
    import {SafeAreaView} from 'react-native-safe-area-context';
    import WriteEditor from '../components/WriteEditor';
    import WriteHeader from '../components/WriteHeader';
    import LogContext from '../contexts/LogContext';
    
    function WriteScreen({route}) {
      (...)
      const {onCreate, onModify, onRemove} = useContext(LogContext);
      (...)
      const onAskRemove = () => {
        Alert.alert(
          '삭제',
          '정말로 삭제하시겠어요?',
          [
            {text: '취소', style: 'cancel'},
            {
              text: '삭제',
              onPress: () => {
                onRemove(log?.id);
                navigation.pop();
              },
              style: 'destructive',
            },
          ],
          {
            cancelable: true,
          },
        );
      };
    
      return (
        <SafeAreaView style={styles.block}>
          <KeyboardAvoidingView
            style={styles.avoidingView}
            behavior={Platform.OS === 'ios' ? 'padding' : undefined}>
            <WriteHeader
              onSave={onSave}
              onAskRemove={onAskRemove}
              isEditing={!!log}
            />
            <WriteEditor
              title={title}
              body={body}
              onChangeTitle={setTitle}
              onChangeBody={setBody}
            />
          </KeyboardAvoidingView>
        </SafeAreaView>
      );
    }
    
    (...)
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.