Kako koristiti Formik za stvaranje obrazaca u Reactu

Formik khiến việc tạo biểu mẫu trong React dễ dàng hơn. Dưới đây là cách dùng Formik để tạo biểu mẫu trong React.

Cách dùng Formik để tạo biểu mẫu trong React

Formik & biểu mẫu trong React

Formik là một thư viện quản lý biểu mẫu, cung cấp các thành phần và móc nối giúp quá trình tạo biểu mẫu React đơn giản hơn. Ở bài viết này, hãy cùng Download.vn học cách tạo biểu mẫu đăng ký trong React bằng Formik nhé!

Cách dùng Formik để tạo biểu mẫu trong React

Tạo một app React

Dùng create-react-app để tạo một dự án React mới:

npx create-react-app formik-form

Giờ điều hướng tới thư mục formik-form/src và xóa tất cả file, ngoại trừ App.js. Tiếp theo, tạo một file mới và đặt tên nó là Register.js. Đây là nơi bạn sẽ thêm biểu mẫu. Nhớ nhập nó vào App.js.

Tạo một biểu mẫu trong React

Bạn có thể tạo các biểu mẫu trong React bằng các thành phần được kiểm soát hoặc không.

  • Dữ liệu biểu mẫu được tạo từ thành phần kiểm soát sẽ do React xử lý.
  • Dữ liệu biểu mẫu được tạo từ thành phần không kiểm soát do DOM xử lý.

React khuyến khích bạn dùng thành phần được kiểm soát. Chúng cho phép bạn theo dõi dữ liệu trong biểu mẫu ở trạng thái nội bộ nên sẽ có toàn quyền quản lý biểu mẫu.

Bên dưới là một ví dụ biểu mẫu được tạo bằng một thành phần được kiểm soát:

import { useState } from "react";
const Register = () => {
 const [email, setemail] = useState("");
 const [password, setpassword] = useState("");
 const handleSubmit = (event) => {
 event.preventDefault();
 console.log(email);
 };
 const handleEmail = (event) => {
 setemail(event.target.value);
 };
 const handlePassword = (event) => {
 setpassword(event.target.value);
 };
 return (
 

); }; export default Register;

Ở code trên, bạn đang khởi tạo trạng thái và tạo một hàm xử lý cho từng trường dữ liệu nhập vào. Trong khi nó hoạt động, code của bạn có thể bị lặp lại và lộn xộn, nhất là khi có nhiều trường nhập. Thêm xác thực và xử lý thông báo lỗi là một thử thách khác.

Formik có thể giảm tình trạng trên. Nó khiến việc xử lý trạng thái, xác thực và nhập dữ liệu trở nên dễ dàng.

Thêm Formik vào React

Trước khi dùng formik, thêm nó vào dự án bằng npm.

npm install formik

Để tích hợp Formik, bạn sẽ dùng hook useFormik. Trong Register.js, nhập useFormik ở phía trên đầu của file:

import { useFormik } from "formik"

Bước đầu tiên là thiết lập các giá trị của biểu mẫu. Trong trường hợp này, bạn sẽ khởi tạo email và mật khẩu.

const formik = useFormik({
 initialValues: {
 email: "",
 password: "",
 },
 onSubmit: values => {
// handle form submission
 },
});

Bạn cũng cần thêm hàm onSubmit, nhận các giá trị và xử lý gửi biểu mẫu. Đối với một biểu mẫu đăng ký, hành động này tạo người dùng mới trong cơ sở dữ liệu.

Bước tiếp theo là dùng đối tượng formik để lấy các giá trị biểu mẫu trong và ngoài trạng thái.

 

Ở code trên, bạn đang:

  • Cung cấp các trường nhập là giá trị id và name tương đương với giá trị được dùng trong quá trình khởi tạo bằng hook useFormik.
  • Truy cập giá trị của một trường, dùng tên của nó để trích xuất nó từ formik.values.
  • Liên kết formik.handleChange với sự kiện onChange để hiện các giá trị nhập vào làm kiểu người dùng.
  • Dùng formik.handleBlur để theo dõi các trường đã ghé thăm.
  • Liên kết formik.handleSubmit với sự kiện onSubmit để kích hoạt hàm onSubmit bạn đã thêm vào hook useFormik.

Kích hoạt xác thực biểu mẫu

Khi tạo một biểu mẫu, xác thực dữ liệu nhập vào rất quan trọng bởi nó đảm bảo xác thực người dùng dễ dàng và dữ liệu được lưu ở đúng định dạng. Ví dụ, bạn có thể kiểm tra tính hợp lệ của email, mật khẩu có đủ ký tự cần thiết...

Để xác thực biểu mẫu trong ví dụ này, hãy chọn hàm phù hợp, chấp nhận các giá trị của biểu mẫu và trả về một đối tượng lỗi.

Nếu thêm hàm xác thực vào useFormik, bất kỳ lỗi xác thực được tìm thấy sẽ nằm trong Formik.errors, được lập chỉ mục trên tên trường nhập. Ví dụ, bạn có thể xem lỗi về trường email bằng Formik.errors.email.

Trong Register.js, tạo hàm validate và bao gồm nó trong useFormik.

const formik = useFormik({
 initialValues: {
 email: "",
 password: "",
 },
 validate: () => {
 const errors = {};
 console.log(errors)
 if (!formik.values.email) {
 errors.email = "Required";
 } else if (
 !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(formik.values.email)
 ) {
 errors.email = "Invalid email address";
 }
 if (!formik.values.password) {
 errors.password = "Required";
 } else if (formik.values.password.length < 8)="" {="" errors.password="Must be 8 characters or more" ;="" }="" return="" errors;="" },="" onsubmit:="" (values)=""> {
 console.log("submitted!");
 // handle submission
 },
});

Thêm xử lý lỗi

Tiếp theo, hiển thị thông báo lỗi nếu có. Dùng Formik.touched để kiểm tra trường đó đã được ghé thăm hay chưa. Điều này tránh hiện lỗi ở trường người dùng chưa truy cập.

 

{formik.touched.email && formik.errors.email ?

{formik.errors.email}

: null} {formik.touched.password && formik.errors.password ?

{formik.errors.password}

: null}

Xác thực dữ liệu bằng Yup

Formik cung cấp một cách dễ hơn để xác thực các biểu mẫu bằng thư viện Yup. Cài đặt Yup để bắt đầu:

npm install yup

Nhập yup trong Register.js.

import * as Yup from "yup"

Thay vì tự viết hàm xác thực, dùng Yup để kiểm tra tính hợp lệ của email và mật khẩu sẽ nhanh hơn.

const formik = useFormik({
 initialValues: {
 email: "",
 password: "",
 },
 validationSchema: Yup.object().shape({
 email: Yup.string()
 .email("Invalid email address")
 .required("Required"),
 password: Yup.string()
 .min(8, "Must be 8 characters or more")
 .required("Required")
 }),
 onSubmit: (values) => {
 console.log("submitted!");
// handle submission
 },
});

Thế là xong! Bạn đã tạo một biểu mẫu đăng ký đơn giản bằng Formik và Yup.

Trên đây là cách dùng Formik tạo biểu mẫu trong React đơn giản nhất. Hi vọng bài viết hữu ích với các bạn!

Ostavite komentar

Predložak za PowerPoint godišnje izvješće neprofitne organizacije: besplatne opcije preuzimanja i kontrolni popis slajdova

Predložak za PowerPoint godišnje izvješće neprofitne organizacije: besplatne opcije preuzimanja i kontrolni popis slajdova

Izradite jasno godišnje izvješće neprofitne organizacije u PowerPointu s besplatnim predloškom, praktičnom strukturom slajdova, metrikama utjecaja, financijskim podacima i savjetima za prezentacije spremnim za donatore.

Minimalistički PowerPoint predložak za prezentaciju investitorima za tehnološke startupove: Što uključiti, a što izostaviti

Minimalistički PowerPoint predložak za prezentaciju investitorima za tehnološke startupove: Što uključiti, a što izostaviti

Izradite prezentaciju za investitore u startup s čistom tehnologijom u PowerPointu s praktičnom strukturom slajdova, porukama koje stavljaju dokaze na prvo mjesto, pristupačnim dizajnom i manje ometanja.

Predložak jednostavne matrice delegiranja zadataka za Word: Praktična verzija za voditelje malih timova

Predložak jednostavne matrice delegiranja zadataka za Word: Praktična verzija za voditelje malih timova

Pomoću ovog jednostavnog predloška matrice delegiranja zadataka u Wordu dodijelite vlasnike, ograničenja odluka, rokove i kontrolne točke bez prekomjernog kompliciranja malog tima.

Jednostavan predložak za evidenciju prisutnosti u vrtiću: Ispisiva prijava i odjava za kućnu brigu o djeci

Jednostavan predložak za evidenciju prisutnosti u vrtiću: Ispisiva prijava i odjava za kućnu brigu o djeci

Koristite ovaj jednostavni ispisivi popis prisutnosti u vrtiću za kućnu brigu o djeci, s imenima djece, vremenima dolaska/odlaska, potpisima i savjetima o usklađenosti.

Predložak marketinške strategije na jednoj stranici za ispis za lokalna poduzeća

Predložak marketinške strategije na jednoj stranici za ispis za lokalna poduzeća

Pomoću ovog predloška marketinške strategije od jedne stranice za ispis definirajte svoju lokalnu publiku, ponudu, kanale, proračun, tjedne akcije i mjerljive ciljeve.

Kako spriječiti Excel da automatski mijenja brojeve u datume

Kako spriječiti Excel da automatski mijenja brojeve u datume

Spriječite Excel da pretvara vrijednosti poput 1/2, 11-53 ili JAN1 u datume. Naučite pouzdana rješenja za tipkanje, lijepljenje, uvoz CSV datoteka i već pretvorene ćelije.

PowerPoint predložak za modernu prezentaciju nekretnina (besplatno): Što uključiti

PowerPoint predložak za modernu prezentaciju nekretnina (besplatno): Što uključiti

Besplatno izradite uglađen PowerPoint prezentaciju s popisom nekretnina uz praktičan plan slajdova, fotografiju, brendiranje, pristupačnost, usklađenost i savjete za izvoz.

Kako riješiti grešku Outlooka: ne može slati e-poštu, ali može primati

Kako riješiti grešku Outlooka: ne može slati e-poštu, ali može primati

Popravite Outlook kada možete primati e-poštu, ali ne i slati. Provjerite mapu Odlazne, način rada bez veze, prijavu, SMTP postavke, profile i promjene u Microsoft 365.

Jednostavni Excel predložak za dvotjedni obračun plaća za male timove: Praktični vodič za postavljanje

Jednostavni Excel predložak za dvotjedni obračun plaća za male timove: Praktični vodič za postavljanje

Izradite jednostavan dvotjedni obračun plaća u Excelu za mali tim, s evidencijom radnih sati, plaća, odbitaka, oznaka za pregled, sažecima i smjernicama za vođenje evidencije.

Predložak za provjeru planiranja događaja i proračun za Word za ispis: Što uključiti i kada umjesto toga koristiti Excel

Predložak za provjeru planiranja događaja i proračun za Word za ispis: Što uključiti i kada umjesto toga koristiti Excel

Izradite ili prilagodite predložak proračuna i kontrolni popis za planiranje događaja za ispis u programu Microsoft Word, s praktičnim odjeljcima, kompromisima i savjetima za Word u odnosu na Excel.