Как сделать валидацию полей в react-native?

Пользователь

от clifford , в категории: JavaScript , год назад

Как сделать валидацию полей в react-native?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от kyleigh_runte , год назад

@clifford 

React Native предоставляет различные способы для валидации полей ввода. Вот некоторые из них:

  1. Использование стандартных компонентов TextInput: Вы можете использовать стандартный компонент TextInput, который позволяет добавлять обработчики событий, такие как onChange и onBlur. Вы можете использовать эти обработчики для валидации полей ввода и отображения соответствующих ошибок.


Пример:

 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
import React, { useState } from 'react';
import { View, TextInput, Text } from 'react-native';

const App = () => {
  const [email, setEmail] = useState('');
  const [password, setPassword] = useState('');
  const [errors, setErrors] = useState({});

  const validateFields = () => {
    const errors = {};

    if (!email) {
      errors.email = 'Email is required';
    }

    if (!password) {
      errors.password = 'Password is required';
    }

    setErrors(errors);

    return Object.keys(errors).length === 0;
  };

  const handleSubmit = () => {
    if (validateFields()) {
      // Submit form
    }
  };

  return (
    <View>
      <TextInput
        placeholder="Email"
        onChangeText={text => setEmail(text)}
        onBlur={validateFields}
      />
      {errors.email && <Text style={{ color: 'red' }}>{errors.email}</Text>}
      <TextInput
        placeholder="Password"
        secureTextEntry={true}
        onChangeText={text => setPassword(text)}
        onBlur={validateFields}
      />
      {errors.password && <Text style={{ color: 'red' }}>{errors.password}</Text>}
      <Button title="Submit" onPress={handleSubmit} />
    </View>
  );
};

export default App;


  1. Использование библиотеки Formik: Formik - это библиотека для управления формами в React и React Native. Она предоставляет множество полезных функций, таких как валидация, управление состоянием формы и отправка данных.


Пример:

 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
import React from 'react';
import { View, TextInput, Text, Button } from 'react-native';
import { Formik } from 'formik';

const App = () => {
  const handleSubmit = values => {
    // Submit form
  };

  const validate = values => {
    const errors = {};

    if (!values.email) {
      errors.email = 'Email is required';
    }

    if (!values.password) {
      errors.password = 'Password is required';
    }

    return errors;
  };

  return (
    <Formik initialValues={{ email: '', password: '' }} onSubmit={handleSubmit} validate={validate}>
      {({ handleChange, handleBlur, handleSubmit, values, errors }) => (
        <View>
          <TextInput placeholder="Email" onChangeText={handleChange('email')} onBlur={handleBlur('email')} value={values.email} />
          {errors.email && <Text style={{ color: 'red' }}>{errors.email}</Text>}
          <TextInput placeholder="Password" secureTextEntry={true} onChangeText={handleChange('password')} onBlur={handleBlur('password')} value={values.password} />
          {errors.password && <Text style={{ color: 'red' }}>{errors.password}</Text>}
          <Button title="Submit" onPress={handleSubmit} />
        </View>
      )}
    </Formik>
  );
};

export default App;