react js form with post api

import axios from 'axios';
import React,{useEffectuseStatefrom 'react'

function Form() {
    const initialvalue={username:'',userpwd:''};
    const [state,setState]=useState(initialvalue)
    const username=state.username;
    const userpwd=state.userpwd;
const [formerror,setFormerror]=useState({});
  const [submit,isSubmit]=useState(false);

const handlechange=(e)=>{
//console.log(e.target.name);
const {name,value}=e.target;
  setState({...state,[name]:value})
}
const Validate=(state)=>{
    const error={}
    const regexpusername=/^[a-zA-Z]+$/;
    const regexpassword=/^[a-zA-Z0-9]\w{7,10}$/;
    if(state.username===''){
        error.username="please fill your name";
        //alert("please fill your username");
    }
    if(!regexpusername.test(state.username)){
        error.username="please fill characters only";
    }
    if(state.userpwd===''){
        error.pwd="please fill your password";
        //alert("please fill your password");
    }
    if(!regexpassword.test(state.userpwd)){
        error.pwd="please fill characters b/w 7-14";
    } 
    //console.log(error);
    setFormerror(error);//
    //console.log("good morning"+formerror);

}
const handleSubmit=(e)=>{
    e.preventDefault();
    Validate(state);
isSubmit(true)
}

useEffect(()=>{
    //console.log(formerror);
if(Object.keys(formerror).length===0&& isSubmit){
   axios.post("http://localhost:4000/myapp",state).then(res=>{
console.log(state);
console.log(formerror);
   }).catch(err=>console.log(err))
}
},[formerror])

  return (
    <div>
{username}{userpwd}
<form action="" onSubmit={handleSubmit}>
    <div>
        <label htmlFor="name">Name</label>
        <input type="text" name="username"
        value={username}
        onChange={handlechange}
        />
<span>{formerror.username} </span>
    </div>
    <div>
        <label htmlFor="password">Password</label>
        <input type="password" 
        value={userpwd}
        name="userpwd" 
        onChange={handlechange} />
    <span>{formerror.pwd}</span>
    </div>
    <div>
        <input type="submit" value="save" />
    </div>
</form>

    </div>
  )
}

export default Form

Comments

Popular posts from this blog

interview questions js[ Anurag Singh ProCodrr]

reactnative_creation