-
Notifications
You must be signed in to change notification settings - Fork 50
Open
Description
I'm basically using the demo Gist verbatim:
https://snack.expo.io/@almouro/react-native-formik-gist
When I type a single letter into any text field I get the error:
TypeError: undefined is not an object (evaluating '(i === 0 ? obj : resVal)[pathArray[i]]')
I tried removing validationSchema and I still got the error. Separately, I tried removing withNextInputAutoFocusForm and withNextInputAutoFocusInput, and still got the problem. It feels like a bug in handleTextInput. Maybe I'm doing something stupid in the syntax below.
From package.json:
"formik": "^2.1.4",
"react-native-formik": "^1.7.8",
"react-native-material-textfield": "^0.16.1",
"recompose": "^0.30.0",
"yup": "^0.28.3"
Code:
import React from 'react';
import { Button, ScrollView, View } from 'react-native';
import { compose } from 'recompose';
import { Formik } from 'formik';
import * as Yup from 'yup';
import {
handleTextInput,
withNextInputAutoFocusForm,
withNextInputAutoFocusInput
} from 'react-native-formik';
import { OutlinedTextField } from 'react-native-material-textfield';
const MyInput = compose(
handleTextInput,
withNextInputAutoFocusInput
)(OutlinedTextField);
const Form = withNextInputAutoFocusForm(View);
const validationSchema = Yup.object().shape({
country: Yup.string()
.required('Required.')
.length(2, 'Must be 2 letter country code.'),
});
const RegistrationForm = props => (
<Formik
onSubmit={values => console.log(values)}
validationSchema={validationSchema}
>
{props => (
<Form>
<MyInput label="Country" name="country" type="name"/>
<MyInput label="Business name" name="name" type="name"/>
<MyInput label="Business website" name="website" type="email"/>
<MyInput label="Business phone number" name="phone" type="digits"/>
<MyInput label="Address line 1" name="addressLine1" type="name"/>
<MyInput label="Address line 2" name="addressLine2" type="name"/>
<MyInput label="City" name="city" type="name"/>
<MyInput label="State" name="state" type="name"/>
<MyInput label="Zip code" name="zip" type="digits"/>
<Button onPress={props.handleSubmit} title="SUBMIT" />
</Form>
)}
</Formik>
);
export default class MyScreen extends React.Component {
render() {
return (
<ScrollView style={{ padding: 30 }}>
<RegistrationForm/>
</ScrollView>
);
}
}
bruscantini and alkalox
Metadata
Metadata
Assignees
Labels
No labels