Hur man använder Formik för att skapa formulär i React

Formik gör det enklare att skapa formulär i React. Så här använder du Formik för att skapa formulär i React .

Hur man använder Formik för att skapa formulär i React

Formik & former i React

Formik är ett formulärhanteringsbibliotek som tillhandahåller komponenter och krokar som gör processen att skapa React-formulär enklare. I den här artikeln ska vi lära oss med Download.vn hur man skapar ett registreringsformulär i React med Formik !

Hur man använder Formik för att skapa formulär i React

Skapa en React-app

Använd create-react-app för att skapa ett nytt React-projekt:

npx create-react-app formik-form

Navigera nu till mappen formik-form/src och ta bort alla filer utom App.js . Skapa sedan en ny fil och namnge den Register.js . Det är här du lägger till formuläret. Kom ihåg att importera den till App.js .

Skapa ett formulär i React

Du kan skapa formulär i React med kontrollerade komponenter eller inte.

  • Formulärdata som genereras från kontrollkomponenten kommer att hanteras av React.
  • Formulärdata som genereras från okontrollerade element hanteras av DOM.

React uppmuntrar dig att använda kontrollerade komponenter. De låter dig spåra formulärdata lokalt, så att du har full kontroll över formuläret.

Nedan är ett exempelformulär skapat med en kontrollerad 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 ovan initierar du tillstånd och skapar en hanterarfunktion för varje inmatningsfält. Medan det fungerar kan din kod bli repetitiv och rörig, speciellt om det finns många inmatningsfält. Att lägga till validering och felmeddelandehantering är en annan utmaning.

Formik kan minska ovanstående tillstånd. Det gör tillståndshantering, validering och datainmatning enkelt.

Lägg till Formik för att React

Innan du använder formik , lägg till det i ditt projekt med npm.

npm install formik

För att integrera Formik använder du useFormik-kroken. I Register.js anger du useFormik överst i filen:

import { useFormik } from "formik"

Det första steget är att ställa in formulärvärdena. I det här fallet kommer du att initialisera din e-postadress och ditt lösenord.

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

Du måste också lägga till en onSubmit-funktion, som hämtar värdena och hanterar formulärinlämning. För ett registreringsformulär skapar den här åtgärden en ny användare i databasen.

Nästa steg är att använda formik-objektet för att få formulärvärdena in och ut ur tillståndet.

 

I koden ovan är du:

  • Ange inmatningsfält med id- och namnvärden som motsvarar de värden som användes under initieringen med hjälp av useFormik- kroken .
  • Få tillgång till värdet på ett fält, använd dess namn för att extrahera det från formik.values .
  • Bind formik.handleChange till onChange -händelsen för att visa ingångsvärden som användartyper.
  • Använd formik.handleBlur för att hålla reda på besökta fält.
  • Bind formik.handleSubmit till onSubmit- händelsen för att trigga onSubmit-funktionen som du lade till i useFormik- kroken .

Aktivera formulärautentisering

När du skapar ett formulär är indatavalidering viktigt eftersom det säkerställer att användarautentisering är enkel och att data sparas i rätt format. Till exempel kan du kontrollera giltigheten av e-postmeddelandet, lösenordet har alla nödvändiga tecken...

För att validera formuläret i det här exemplet, välj lämplig funktion, acceptera formulärvärdena och returnera ett felobjekt.

Om du lägger till en valideringsfunktion för useFormik kommer eventuella valideringsfel som hittas att finnas i Formik.errors , indexerade på inmatningsfältets namn. Du kan till exempel visa fel om e-postfält med Formik.errors.email .

Skapa en valideringsfunktion i Register.js och inkludera 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
 },
});

Lägg till felhantering

Visa sedan eventuella felmeddelanden. Använd Formik.touched för att kontrollera om det fältet har besökts eller inte. Detta undviker att visa ett fel i fältet där användaren ännu inte har öppnat.

 

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

{formik.errors.email}

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

{formik.errors.password}

: null}

Validera data med Yup

Formik ger ett enklare sätt att validera formulär med hjälp av Yup-biblioteket. Installera Yup för att komma igång:

npm install yup

Ange yup i Register.js .

import * as Yup from "yup"

Istället för att skriva din egen autentiseringsfunktion går det snabbare att använda Yup för att kontrollera giltigheten av e-post och lösenord.

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 är gjort! Du har skapat ett enkelt registreringsformulär med Formik och Yup .

Ovan är det enklaste sättet att använda Formik för att skapa formulär i React . Hoppas den här artikeln är användbar för dig!

Lämna en kommentar

PowerPoint-mall för årsredovisning för ideella organisationer: Gratis nedladdningsalternativ och checklista för bildspel

PowerPoint-mall för årsredovisning för ideella organisationer: Gratis nedladdningsalternativ och checklista för bildspel

Skapa en tydlig årsredovisning för ideella organisationer i PowerPoint med en gratis mall, praktisk bildstruktur, effektmått, ekonomi och presentationstips som är redo för givare.

PowerPoint-mall för minimalistisk investerarpresentation för teknikstartups: Vad som ska inkluderas och vad som ska utelämnas

PowerPoint-mall för minimalistisk investerarpresentation för teknikstartups: Vad som ska inkluderas och vad som ska utelämnas

Skapa en PowerPoint-presentation för investerare i cleantech-startups med praktisk bildstruktur, evidensfokuserat budskap, tillgänglig design och färre distraktioner.

Enkel mall för uppgiftsdelegeringsmatris för Word: En praktisk version för små teamchefer

Enkel mall för uppgiftsdelegeringsmatris för Word: En praktisk version för små teamchefer

Använd den här enkla mallen för uppgiftsdelegeringsmatris i Word för att tilldela ägare, beslutsgränser, deadlines och kontrollpunkter utan att komplicera ett litet team alltför mycket.

Mall för enkel närvarolista för dagis: Utskrivbar in- och utloggning för hemomsorg

Mall för enkel närvarolista för dagis: Utskrivbar in- och utloggning för hemomsorg

Använd detta enkla utskrivbara närvaroblad för dagis för hemomsorg, med barnens namn, ankomst-/avgångstider, underskrifter och tips om efterlevnad.

Utskrivbar mall för marknadsföringsstrategi på en sida för lokala företag

Utskrivbar mall för marknadsföringsstrategi på en sida för lokala företag

Använd den här utskrivbara mallen för marknadsföringsstrategi på en sida för att definiera din lokala målgrupp, erbjudande, kanaler, budget, veckovisa åtgärder och mätbara mål.

Hur man stoppar Excel från att automatiskt ändra siffror till datum

Hur man stoppar Excel från att automatiskt ändra siffror till datum

Stoppa Excel från att konvertera värden som 1/2, 11-53 eller JAN1 till datum. Lär dig pålitliga lösningar för inmatning, inklistring, CSV-import och redan konverterade 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.

Så åtgärdar du felet att Outlook inte kan skicka e-post men kan ta emot

Så åtgärdar du felet att Outlook inte kan skicka e-post men kan ta emot

Åtgärda Outlook när du kan ta emot e-post men inte skicka. Kontrollera Utkorg, offlineläge, inloggning, SMTP-inställningar, profiler och ändringar i Microsoft 365.

Enkel biweekly lönespårare i Excel för små team: En praktisk installationsguide

Enkel biweekly lönespårare i Excel för små team: En praktisk installationsguide

Bygg en enkel biweekly lönespårare i Excel för ett litet team, med timmar, lön, avdrag, granskningsflaggor, sammanfattningar och vägledning för dokumentation.

Utskrivbar checklista och budgetmall för evenemangsplanering för Word: Vad som ska inkluderas och när man ska använda Excel istället

Utskrivbar checklista och budgetmall för evenemangsplanering för Word: Vad som ska inkluderas och när man ska använda Excel istället

Skapa eller anpassa en utskrivbar checklista och budgetmall för evenemangsplanering i Microsoft Word, med praktiska avsnitt, avvägningar och tips för Word kontra Excel.