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 ({route}) { ( ) const {onCreate, onModify, onRemove} (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> ); } ( )