-
-
Save pavsidhu/d4290058c5584b6ee593090e2871e844 to your computer and use it in GitHub Desktop.
import React, {Component} from 'react' | |
import {View, Button} from 'react-native' | |
import TextField from 'textfield' | |
import validation from 'validation' | |
import validate from 'validation_wrapper' | |
export default class Form extends Component { | |
constructor(props) { | |
super(props) | |
this.state = { | |
email: '', | |
emailError: '', | |
password: '', | |
passwordError: '' | |
} | |
} | |
register() { | |
const emailError = validate('email', this.state.email) | |
const passwordError = validate('password', this.state.password) | |
this.setState({ | |
emailError: emailError, | |
passwordError: passwordError | |
}) | |
if (!emailError && !passwordError) { | |
alert('Details are valid!') | |
} | |
} | |
render() { | |
return ( | |
<View> | |
<TextField | |
onChangeText={value => this.setState({email: value.trim()})} | |
onBlur={() => { | |
this.setState({ | |
emailError: validate('email', this.state.email) | |
}) | |
}} | |
error={this.state.emailError}/> | |
<TextField | |
onChangeText={value => this.setState({password: value.trim()})} | |
onBlur={() => { | |
this.setState({ | |
passwordError: validate('password', this.state.password) | |
}) | |
}} | |
error={this.state.passwordError} | |
secureTextEntry={true}/> | |
<Button | |
title='Register' | |
onPress={this.validateRegister}/> | |
</View> | |
) | |
} | |
} |
can not found validation_wrapper?
@SwapnilShoreline here is the validate_wrapper from @pavsidhu
import validation from 'validation.js';
export default function validate(fieldName, value) {
// Validate.js validates your values as an object
// e.g. var form = {email: '[email protected]'}
// Line 8-9 creates an object based on the field name and field value
var formValues = {};
formValues[fieldName] = value;
// Line 13-14 creates an temporary form with the validation fields
// e.g. var formFields = {
// email: {
// presence: {
// message: 'Email is blank'
// }
// }
var formFields = {};
formFields[fieldName] = validation[field];
// The formValues and validated against the formFields
// the variable result hold the error messages of the field
const result = validatejs(formValues, formFields);
// If there is an error message, return it!
if (result) {
// Return only the field error message if there are multiple
return result[field][0];
}
return null;
}
should simply be this.register?