登録フォームを作成するために、UI-kitten
react naitve を使用しています。insideformik
の select コンポーネントを使用しています。コンポーネントから選択した値を取得できませんでした。選択したアイテムのインデックスが表示され、選択したアイテムがフィールドに表示されません。入力とコンポーネントで正常に動作します。ui kitten
formik
(in console.warn())
datePicker
const formSchema = yup.object({
name: yup.string().required("*Full Name is required"),
gender: yup.string().required("*Gender is required"),
dob: yup.string().required("*Date of birth is required"),})
export default class Registration extends Component {
render() {
return (
<Formik
validationSchema={formSchema}
initialValues={{
name: '',
gender: '',
dob: '',
}}
onSubmit={(values) => {
console.log(values)
}}
>
{(props) => (
<ScrollView style={styles.containerStyle}>
<LinearGradient style={{ height: '100%' }}
colors={["#0C1248", "#D03737"]}>
<ScrollView contentContainerStyle={styles.scrollViewStyle}>
<Text style={styles.textStyle} category='h2'>Registration</Text>
<Input
style={styles.inputView}
value={props.values.name}
status='primary'
placeholder="Full Name"
onChangeText={props.handleChange('name')}
/>
<Text style={styles.errorText}>{props.touched.name && props.errors.name}</Text>
<Datepicker
style={styles.inputView}
date={props.values.dob}
placeholder="Date of birth"
onSelect={(dob) => { props.setFieldValue('dob', dob) }}
/>
<Text style={styles.errorText}>{props.touched.dob && props.errors.dob}</Text>
<Select
style={styles.inputView}
value={props.values.gender}
placeholder='Gender'
onSelect={item => props.setFieldValue(
'gender', item.value
)}
>
<SelectItem title='Male' />
<SelectItem title='Female' />
</Select>
<TouchableOpacity style={{ alignItems: "center", justifyContent: 'center' }}>
<LinearGradient style={{ width: width / 1.25, padding: 12, borderRadius: 30 }}
colors={["#D03737", "#0C1248"]}>
<Text style={{ color: "white", textAlign: "center" }} onPress={props.handleSubmit}>Next</Text>
</LinearGradient>
</TouchableOpacity>
</ScrollView>
</LinearGradient>
</ScrollView>
)}
</Formik>
);
}
}