Hvordan bruke Formik til å lage skjemaer i React

Formik gjør det enklere å lage skjemaer i React. Slik bruker du Formik til å lage skjemaer i React .

Hvordan bruke Formik til å lage skjemaer i React

Formik & skjemaer i React

Formik er et skjemaadministrasjonsbibliotek som gir komponenter og kroker som gjør prosessen med å lage React-skjemaer enklere. I denne artikkelen, la oss lære med Download.vn hvordan du lager et registreringsskjema i React ved å bruke Formik !

Hvordan bruke Formik til å lage skjemaer i React

Lag en React-app

Bruk create-react-app for å lage et nytt React-prosjekt:

npx create-react-app formik-form

Naviger nå til formik-form/src- mappen og slett alle filer unntatt App.js . Deretter oppretter du en ny fil og gir den navnet Register.js . Det er her du legger til skjemaet. Husk å importere den til App.js .

Lag et skjema i React

Du kan lage skjemaer i React med kontrollerte komponenter eller ikke.

  • Skjemadata generert fra kontrollkomponenten vil bli håndtert av React.
  • Skjemadata generert fra ukontrollerte elementer håndteres av DOM.

React oppfordrer deg til å bruke kontrollerte komponenter. De lar deg spore skjemadata lokalt, slik at du har full kontroll over skjemaet.

Nedenfor er et eksempelskjema laget med en kontrollert komponent:

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;

I koden ovenfor initialiserer du tilstand og oppretter en behandlerfunksjon for hvert inndatafelt. Mens det fungerer, kan koden din bli repeterende og rotete, spesielt hvis det er mange inndatafelt. Å legge til validering og håndtering av feilmeldinger er en annen utfordring.

Formik kan redusere tilstanden ovenfor. Det gjør håndtering, validering og dataregistrering til en lek.

Legg til Formik for å React

Før du bruker formik , legg den til i prosjektet ditt ved å bruke npm.

npm install formik

For å integrere Formik bruker du useFormik-kroken. I Register.js skriver du inn useFormik øverst i filen:

import { useFormik } from "formik"

Det første trinnet er å sette opp skjemaverdiene. I dette tilfellet vil du initialisere e-post og passord.

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

Du må også legge til en onSubmit-funksjon, som henter verdiene og håndterer skjemainnsending. For et registreringsskjema oppretter denne handlingen en ny bruker i databasen.

Det neste trinnet er å bruke formik-objektet for å få skjemaverdiene inn og ut av tilstand.

 

I koden ovenfor er du:

  • Gi inndatafelt med id- og navneverdier som tilsvarer verdiene som ble brukt under initialisering ved å bruke useFormik- kroken .
  • Få tilgang til verdien til et felt ved å bruke navnet til å trekke det ut fra formik.values .
  • Bind formik.handleChange til onChange- hendelsen for å vise inngangsverdier som brukertyper.
  • Bruk formik.handleBlur for å holde styr på besøkte felt.
  • Bind formik.handleSubmit til onSubmit- hendelsen for å utløse onSubmit-funksjonen du la til useFormik- kroken .

Aktiver skjemaautentisering

Når du oppretter et skjema, er inndatavalidering viktig fordi det sikrer brukerautentisering er enkel og dataene lagres i riktig format. For eksempel kan du sjekke gyldigheten av e-posten, passordet har alle nødvendige tegn...

For å validere skjemaet i dette eksemplet, velg den aktuelle funksjonen, godta skjemaverdiene og returner et feilobjekt.

Hvis du legger til en valideringsfunksjon til useFormik , vil eventuelle valideringsfeil som finnes i Formik.errors , indeksert på inndatafeltets navn. Du kan for eksempel se feil om e-postfelt ved å bruke Formik.errors.email .

I Register.js oppretter du en valideringsfunksjon og inkluderer den i 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
 },
});

Legg til feilhåndtering

Vis deretter feilmeldinger hvis noen. Bruk Formik.touched for å sjekke om det feltet er besøkt eller ikke. Dette unngår å vise en feil i feltet der brukeren ennå ikke har fått tilgang.

 

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

{formik.errors.email}

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

{formik.errors.password}

: null}

Valider data ved å bruke Yup

Formik gir en enklere måte å validere skjemaer ved å bruke Yup-biblioteket. Installer Yup for å komme i gang:

npm install yup

Skriv inn yup i Register.js .

import * as Yup from "yup"

I stedet for å skrive din egen autentiseringsfunksjon, vil det gå raskere å bruke Yup for å sjekke gyldigheten til e-poster og passord.

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
 },
});

Det er gjort! Du har laget et enkelt registreringsskjema ved å bruke Formik og Yup .

Ovenfor er den enkleste måten å bruke Formik til å lage skjemaer i React . Håper denne artikkelen er nyttig for deg!

Legg igjen en kommentar

PowerPoint-mal for årsrapport for ideelle organisasjoner: Gratis nedlastingsalternativer og sjekkliste for lysbilder

PowerPoint-mal for årsrapport for ideelle organisasjoner: Gratis nedlastingsalternativer og sjekkliste for lysbilder

Lag en tydelig årsrapport for ideelle organisasjoner i PowerPoint med en gratis mal, praktisk lysbildestruktur, effektmålinger, økonomi og presentasjonstips klare for givere.

PowerPoint-mal for minimalistisk investorpresentasjon for teknologioppstartsbedrifter: Hva du bør inkludere og hva du bør utelate

PowerPoint-mal for minimalistisk investorpresentasjon for teknologioppstartsbedrifter: Hva du bør inkludere og hva du bør utelate

Lag en pitch-presentasjon for investorer i oppstartsbransjen for ren teknologi i PowerPoint med praktisk lysbildestruktur, evidensorientert budskap, tilgjengelig design og færre distraksjoner.

Enkel mal for oppgavedelegeringsmatrise for Word: En praktisk versjon for små teamledere

Enkel mal for oppgavedelegeringsmatrise for Word: En praktisk versjon for små teamledere

Bruk denne enkle malen for oppgavedelegeringsmatrise i Word for å tilordne eiere, beslutningsgrenser, tidsfrister og kontrollpunkter uten å komplisere et lite team.

Enkel mal for oppmøteskjema for barnehage: Utskrivbar påmelding og avmelding for hjemmebarnepass

Enkel mal for oppmøteskjema for barnehage: Utskrivbar påmelding og avmelding for hjemmebarnepass

Bruk dette enkle utskrivbare oppmøteskjemaet for barnehagepass hjemme, med barnenavn, ankomst-/avreisetider, signaturer og tips om samsvar.

Utskrivbar én-siders markedsføringsstrategimal for lokale bedrifter

Utskrivbar én-siders markedsføringsstrategimal for lokale bedrifter

Bruk denne utskrivbare malen for markedsføringsstrategi på én side til å definere din lokale målgruppe, tilbud, kanaler, budsjett, ukentlige handlinger og målbare mål.

Slik stopper du Excel fra å automatisk endre tall til datoer

Slik stopper du Excel fra å automatisk endre tall til datoer

Stopp Excel fra å konvertere verdier som 1/2, 11-53 eller JAN1 til datoer. Lær pålitelige løsninger for skriving, liming, CSV-import og allerede konverterte celler.

Modern Real Estate Listing Presentation PowerPoint Template (Free): What to Include

Modern Real Estate Listing Presentation PowerPoint Template (Free): What to Include

Build a polished real estate listing PowerPoint for free with a practical slide plan, photo, branding, accessibility, compliance, and export tips.

Slik løser du feilen der Outlook ikke kan sende e-post, men kan motta

Slik løser du feilen der Outlook ikke kan sende e-post, men kan motta

Løs Outlook-problemer der du kan motta e-post, men ikke sende. Sjekk Utkast, frakoblet modus, pålogging, SMTP-innstillinger, profiler og endringer i Microsoft 365.

Enkel to-ukers lønnstracker i Excel for små team: En praktisk oppsettguide

Enkel to-ukers lønnstracker i Excel for små team: En praktisk oppsettguide

Bygg en enkel to-ukers lønnstracker i Excel for et lite team, med timer, lønn, fratrekk, gjennomgangsmarkeringer, oppsummeringer og retningslinjer for journalføring.

Utskrivbar sjekkliste for arrangementsplanlegging og budsjettmal for Word: Hva du skal inkludere og når du skal bruke Excel i stedet

Utskrivbar sjekkliste for arrangementsplanlegging og budsjettmal for Word: Hva du skal inkludere og når du skal bruke Excel i stedet

Lag eller tilpass en utskrivbar sjekkliste og budsjettmal for arrangementsplanlegging i Microsoft Word, med praktiske deler, avveininger og tips for Word kontra Excel.