
Проверка формы иногда бывает скучной, но необходимой. Существует множество компонентов, одним из наиболее часто используемых является Redux Forms. Сегодня я покажу, как использовать один простой и эффективный компонент под названием Calidation.
Сначала давайте создадим простое приложение для реагирования с помощью create-react-app.
$ create-react-app form-validation-with-calidation
После создания приложения установите калибровку:
$ npm i calidation
Хорошо, давайте изменим некоторые файлы:
В App.css просто добавьте этот код:
...
.container {
font-family: sans-serif;
max-width: 200px;
margin: 20px auto;
}
.input-group {
margin-bottom: 20px;
}
label {
display: block;
font-size: 16px;
font-weight: bold;
}
input {
border: 1px solid #666;
border-radius: 3px;
padding: 5px 10px;
display: block;
width: 100%;
}
.error {
color: darkred;
}
button {
appearance: none;
border: 0;
border-radius: 3px;
font-size: 20px;
padding: 10px 20px;
background-color: #2ecc71;
color: white;
}
Замените App.js этим кодом:
import React, { Component, Fragment } from "react";
import { FormValidation } from "calidation";
import logo from './logo.svg';
import './App.css';
const config = {
username: {
isRequired: "The Username is required"
},
email: {
isRequired: "The e-mail is required",
isEmail: "You need enter a valid email, too"
}
};
class App extends Component {
render() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<h1 className="App-title">React Form Validation with Calidation</h1>
</header>
<div className="container">
<h2>User Form</h2>
<FormValidation config={config}>
{({ errors, submitted }) => (
<Fragment>
<div className="input-group">
<label>
Username <input name="username" /
</label>
{submitted && errors.username && <span className="error">{errors.username}</span>}
</div>
<div className="input-group">
<label>
E-mail <input name="email" type="email" />
</label>
{submitted && errors.email && <span className="error">{errors.email}</span>}
</div>
<button type="submit">Submit</button
</Fragment>)}
</FormValidation>
</div>
</div>
);
}
}
export default App;
Наиболее важные части:
1 - Переменная конфигурации, в которую вы можете добавить сообщения проверки для каждой проверки (isRequired, isEmail и т. Д.)
2 - Компонент FormValidation, в который вы можете добавить свою форму как дочернюю
Хорошо, запустите приложение: npm start и voilà!

Вы можете клонировать этот пример здесь: https://github.com/lblima/react-validation-with-calidation
Это все, ребята,
Спасибо за прочтение!