MemoForm.js 2.35 KB
Newer Older
YoonDongMin's avatar
YdM    
YoonDongMin committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import React from 'react';
import { StyleSheet, Button, TextInput, View, Text, TouchableWithoutFeedback, Keyboard } from 'react-native';
import { globalStyles } from '../styles/global.js'
import { Formik } from 'formik';
import * as yup from 'yup';

const ReviewSchema = yup.object({
    date: yup.string() //string만 받는다
        .required()  //아무것도 입력안했하면 안받음
        .min(4),  //최소4글짜
    person: yup.string()
        .required()
        .min(2),
    money: yup.string()
        .required(),

})




function MemoForm({ addInfo }) {
    return (
        <TouchableWithoutFeedback onPress={() => {
            Keyboard.dismiss();
        }}>
            <View style={globalStyles.container} >
                <Formik
                    initialValues={{ date: '', person: '', money: ''}}
                    validationSchema={ReviewSchema}
                    onSubmit={(values) => {//위의 4개의 val들을 전달

                        addInfo(values);
                    }}

                >

                    {({ handleChange, handleSubmit, values }) => (
                        <View>
                            <TextInput
                                style={globalStyles.input}
                                placeholder='날짜'
                                onChangeText={handleChange('date')} //우리가 바꾸려는 val
                                value={values.date}
                            />

                            <TextInput
                                style={globalStyles.input}
                                placeholder='내용'
                                onChangeText={handleChange('person')}
                                value={values.person}
                            />

                            <TextInput
                                style={globalStyles.input}
                                placeholder='금액'
                                onChangeText={handleChange('money')}
                                value={values.money}
                                keyboardType='numeric'
                            />


                            <Button title='입력' color='maroon' onPress={handleSubmit} />
                        </View>
                    )}

                </Formik>

            </View >
        </TouchableWithoutFeedback>
    )
}

export default MemoForm;