<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Hasnain Ali</title>
    <description>The latest articles on DEV Community by Hasnain Ali (@hasnainali9).</description>
    <link>https://dev.to/hasnainali9</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F876683%2F906dcee2-ce26-481f-8794-28fd5958d274.png</url>
      <title>DEV Community: Hasnain Ali</title>
      <link>https://dev.to/hasnainali9</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hasnainali9"/>
    <language>en</language>
    <item>
      <title>React useState Issue</title>
      <dc:creator>Hasnain Ali</dc:creator>
      <pubDate>Mon, 13 Jun 2022 19:12:00 +0000</pubDate>
      <link>https://dev.to/hasnainali9/react-usestate-issue-i9p</link>
      <guid>https://dev.to/hasnainali9/react-usestate-issue-i9p</guid>
      <description>&lt;p&gt;Hey i'm working on a project where i will have to reset my fields after submitting form. When i try to reset the state to initial it revert back to previous state after some time. here is the code. `import React,{useState,useEffect} from 'react';&lt;br&gt;
import { Navbar } from '../../components';&lt;br&gt;
import { Footer } from '../Home';&lt;br&gt;
import axios from 'axios';&lt;br&gt;
export default function Signup() {&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const initialState = {
    name:'',
    email:'',
    password:'',
    password_confirmation:'',
    scope:'patient',
    terms:false,
    error_list:[],
    error:'',
    success:'',
}
const [signupForm,setSignupForm]=useState(initialState);
useEffect(() =&amp;gt; {
        console.log(signupForm);
},[signupForm]);

const handleForm=(e)=&amp;gt;{
    if(e.target.type=="checkbox"){
       if(e.target.checked){
        setSignupForm({...signupForm,terms:true});

       }else{
        setSignupForm({...signupForm,terms:false});
       }
    }else{
        setSignupForm({...signupForm,[e.target.name]:e.target.value});   
    }
}




function onSubmitFuction(event) {
    event.preventDefault();      
    const data={
        name:signupForm.name,
        email:signupForm.email,
        password:signupForm.password,
        password_confirmation:signupForm.password_confirmation,
        scope:signupForm.scope,
        terms:signupForm.terms,
    }



    axios.post(`/auth/signup`,data)
        .then(res=&amp;gt;{ 
            setSignupForm({...signupForm,success:res.data.data.message});

            setTimeout(function() {
                setSignupForm({...signupForm,success:false});
              }, 5000);
              setSignupForm({...initialState});
              event.target.reset();
              setSignupForm({...initialState});


        }).catch(function (error) {
            console.log(error);
            if(error.response.status===422){
                setSignupForm({...signupForm,error_list:error.response.data.errors});
            }else{
                setSignupForm({...signupForm,error:error.response.data.error});
                setTimeout(function() {
                    setSignupForm({...signupForm,error:false});
                }, 5000);

            }
        });

        console.log( signupForm());
}



return (
    &amp;lt;div&amp;gt;
        &amp;lt;Navbar /&amp;gt;

        &amp;lt;div className='flex w-full h-screen justify-center items-center '&amp;gt;
            &amp;lt;div className='flex flex-col md:flex-row md:space-x-6 space-y-6 contact md:space-y-0  w-full max-w-4xl p-8 rounded-xl shadow-lg text-white'&amp;gt;

                &amp;lt;div className='animate__animated animate__slideInRight  bg-white shadow-lg rounded-xl p-8 text-gray-600'&amp;gt;
                    &amp;lt;form  onSubmit={onSubmitFuction}  className='flex h-full flex-col space-y-8'&amp;gt;


                    {signupForm.error?
                            &amp;lt;div className="animate__animated animate__flipInX flex items-center justify-center px-4"&amp;gt;
                                &amp;lt;div role="alert" id="alert" className="transition duration-150 ease-in-out w-full lg:w-11/12 mx-auto bg-white dark:bg-gray-800 shadow rounded flex flex-col py-4 md:py-0 items-center md:flex-row justify-between"&amp;gt;
                                    &amp;lt;div className="flex flex-col items-center md:flex-row"&amp;gt;
                                        &amp;lt;div className="mr-3 p-4 bg-red-400 rounded md:rounded-tr-none md:rounded-br-none text-white"&amp;gt;
                                            &amp;lt;i className='fa fa-times'&amp;gt;&amp;lt;/i&amp;gt;
                                        &amp;lt;/div&amp;gt;
                                        &amp;lt;p className="mr-2 text-base font-bold text-gray-800 dark:text-gray-100 mt-2 md:my-0"&amp;gt;Error&amp;lt;/p&amp;gt;
                                        &amp;lt;div className="h-1 w-1 bg-gray-300 dark:bg-gray-700 rounded-full mr-2 hidden xl:block"&amp;gt;&amp;lt;/div&amp;gt;
                                        &amp;lt;p className="text-sm lg:text-base dark:text-gray-400 text-gray-600 lg:pt-1 xl:pt-0 sm:mb-0 mb-2 text-center sm:text-left"&amp;gt;{signupForm.error}&amp;lt;/p&amp;gt;
                                    &amp;lt;/div&amp;gt;
                                &amp;lt;/div&amp;gt;
                            &amp;lt;/div&amp;gt; : ""}
                    {signupForm.success?
                            &amp;lt;div className="animate__animated animate__flipInX flex items-center justify-center px-4"&amp;gt;
                                &amp;lt;div role="alert" id="alert" className="transition duration-150 ease-in-out w-full lg:w-11/12 mx-auto bg-white dark:bg-gray-800 shadow rounded flex flex-col py-4 md:py-0 items-center md:flex-row justify-between"&amp;gt;
                                    &amp;lt;div className="flex flex-col items-center md:flex-row"&amp;gt;
                                        &amp;lt;div className="mr-3 p-4 bg-green-400 rounded md:rounded-tr-none md:rounded-br-none text-white"&amp;gt;
                                            &amp;lt;i className='fa fa-check'&amp;gt;&amp;lt;/i&amp;gt;
                                        &amp;lt;/div&amp;gt;
                                        &amp;lt;p className="mr-2 text-base font-bold text-gray-800 dark:text-gray-100 mt-2 md:my-0"&amp;gt;&amp;lt;/p&amp;gt;
                                        &amp;lt;div className="h-1 w-1 bg-gray-300 dark:bg-gray-700 rounded-full mr-2 hidden xl:block"&amp;gt;&amp;lt;/div&amp;gt;
                                        &amp;lt;p className="text-sm lg:text-base dark:text-gray-400 text-gray-600 lg:pt-1 xl:pt-0 sm:mb-0 mb-2 text-center sm:text-left"&amp;gt;{signupForm.success}&amp;lt;/p&amp;gt;
                                    &amp;lt;/div&amp;gt;
                                &amp;lt;/div&amp;gt;
                            &amp;lt;/div&amp;gt; : ""}
                        &amp;lt;div className='my-auto'&amp;gt;
                            &amp;lt;div className='mb-6'&amp;gt;
                                &amp;lt;label className="py-6" htmlFor=""&amp;gt;
                                    Name
                                &amp;lt;/label&amp;gt;

                                &amp;lt;input type='text' name='name'  defaultValue={signupForm.name} onChange={handleForm} placeholder='Full Name' className='p-2 ring-1 ring-gray-300 w-full rounded-md px-4 py-2 outline-none focus:ring-2 focus:ring-purple'/&amp;gt;
                                {signupForm.error_list.name?&amp;lt;span className='text-rose-500'&amp;gt;{signupForm.error_list.name}&amp;lt;/span&amp;gt;:''}
                            &amp;lt;/div&amp;gt;
                            &amp;lt;div className='mb-6'&amp;gt;
                                &amp;lt;label className="py-6" htmlFor=""&amp;gt;
                                    Email Adress
                                &amp;lt;/label&amp;gt;

                                &amp;lt;input type='email' name='email'  defaultValue={signupForm.email} onChange={handleForm} placeholder='Email Adress ' className='p-2 ring-1 ring-gray-300 w-full rounded-md px-4 py-2 outline-none focus:ring-2 focus:ring-purple'&amp;gt;
                                &amp;lt;/input&amp;gt;
                                {signupForm.error_list.email?&amp;lt;span className='text-rose-500'&amp;gt;{signupForm.error_list.email}&amp;lt;/span&amp;gt;:''}
                            &amp;lt;/div&amp;gt;
                            &amp;lt;div className='mb-6'&amp;gt;
                                &amp;lt;label className="  " htmlFor=""&amp;gt;
                                    Password
                                &amp;lt;/label&amp;gt;

                                &amp;lt;input type='password' name='password'  defaultValue={signupForm.password} onChange={handleForm} placeholder='Password' className=' ring-1 ring-gray-300 w-full rounded-md px-4 py-2 outline-none focus:ring-2 focus:ring-purple'&amp;gt;
                                &amp;lt;/input&amp;gt;
                                {signupForm.error_list.password?&amp;lt;span className='text-rose-500'&amp;gt;{signupForm.error_list.password}&amp;lt;/span&amp;gt;:''}
                            &amp;lt;/div&amp;gt;
                            &amp;lt;div className='mb-6'&amp;gt;
                                &amp;lt;label className="  " htmlFor=""&amp;gt;
                                   Confirm Password
                                &amp;lt;/label&amp;gt;

                                &amp;lt;input type='password' name='password_confirmation'  defaultValue={signupForm.password_confirmation} onChange={handleForm} placeholder='Confirm Password' className=' ring-1 ring-gray-300 w-full rounded-md px-4 py-2 outline-none focus:ring-2 focus:ring-purple'&amp;gt;
                                &amp;lt;/input&amp;gt;
                                {signupForm.error_list.password_confirmation?&amp;lt;span className='text-rose-500'&amp;gt;{signupForm.error_list.password_confirmation}&amp;lt;/span&amp;gt;:''}
                            &amp;lt;/div&amp;gt;
                            &amp;lt;div className='mb-6'&amp;gt;
                                &amp;lt;label className="  " htmlFor=""&amp;gt;
                                    Registration type :
                                &amp;lt;/label&amp;gt;

                                &amp;lt;div className="flex"&amp;gt;
                                    &amp;lt;div className="flex items-center mr-4"&amp;gt;
                                        &amp;lt;input id="inline-radio" type="radio" onClick={handleForm} value="patient" defaultChecked={signupForm.scope==="patient"?"checked":''}  name="scope" className="w-4 h-4 text-blue-600 bg-gray-100 border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"/&amp;gt;
                                        &amp;lt;label htmlFor="inline-radio" className="ml-2 text-sm font-medium text-gray-900 dark:text-gray-300"&amp;gt;Patient&amp;lt;/label&amp;gt;
                                    &amp;lt;/div&amp;gt;
                                    &amp;lt;div className="flex items-center mr-4"&amp;gt;
                                        &amp;lt;input id="inline-2-radio" type="radio" onClick={handleForm} defaultChecked={signupForm.scope==="doctor"?"checked":''} value="doctor" name="scope" className="w-4 h-4 text-blue-600 bg-gray-100 border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"/&amp;gt;
                                        &amp;lt;label htmlFor="inline-2-radio" className="ml-2 text-sm font-medium text-gray-900 dark:text-gray-300"&amp;gt;Doctor&amp;lt;/label&amp;gt;
                                    &amp;lt;/div&amp;gt;
                                &amp;lt;/div&amp;gt;
                            &amp;lt;/div&amp;gt;
                            &amp;lt;div className='mb-6'&amp;gt;
                                &amp;lt;input type="checkbox" name='terms' onChange={handleForm} defaultChecked={signupForm.terms?'checked':''} /&amp;gt;
                                &amp;lt;label className="pl-4" htmlFor=""&amp;gt;
                                    I agree to &amp;lt;u&amp;gt;Terms &amp;amp; service&amp;lt;/u&amp;gt; use.
                                &amp;lt;/label&amp;gt;
                                {signupForm.error_list.terms?&amp;lt;span className='text-rose-500'&amp;gt;{signupForm.error_list.terms}&amp;lt;/span&amp;gt;:''}
                            &amp;lt;/div&amp;gt;
                            &amp;lt;button className='block w-full btn-contact text-white font-bold rounded-lg  px-6 py-2 uppercase text-sm mt-6'&amp;gt; Register Now &amp;lt;/button&amp;gt;
                        &amp;lt;/div&amp;gt;
                    &amp;lt;/form&amp;gt;
                &amp;lt;/div&amp;gt;

                {/* //contact */}
                &amp;lt;div className='animate__animated animate__slideInLeft flex flex-col space-y-8 justify-between'&amp;gt;
                    &amp;lt;div&amp;gt;
                        &amp;lt;h1 className='font-bold text-4xl tracking-wide'&amp;gt;Register Now&amp;lt;/h1&amp;gt;
                        &amp;lt;p className='pt-2 text-sm'&amp;gt;Here our team will help you yo can call us or submit your query!&amp;lt;/p&amp;gt;

                    &amp;lt;/div&amp;gt;
                    &amp;lt;div&amp;gt;
                        &amp;lt;div&amp;gt;
                            &amp;lt;div className='inline-flex space-x-2 items-center' &amp;gt;
                                &amp;lt;svg xmlns="http://www.w3.org/2000/svg"
                                    className="h-5 w-5 absolute  "
                                    viewBox="0 0 20 20"
                                    fill="currentColor"&amp;gt;
                                    &amp;lt;path d="M2 3a1 1 0 011-1h2.153a1 1 0 01.986.836l.74 4.435a1 1 0 01-.54 1.06l-1.548.773a11.037 11.037 0 006.105 6.105l.774-1.548a1 1 0 011.059-.54l4.435.74a1 1 0 01.836.986V17a1 1 0 01-1 1h-2C7.82 18 2 12.18 2 5V3z" /&amp;gt;
                                    &amp;lt;path d="M16.707 3.293a1 1 0 010 1.414L15.414 6l1.293 1.293a1 1 0 01-1.414 1.414L14 7.414l-1.293 1.293a1 1 0 11-1.414-1.414L12.586 6l-1.293-1.293a1 1 0 011.414-1.414L14 4.586l1.293-1.293a1 1 0 011.414 0z" /&amp;gt;
                                &amp;lt;/svg&amp;gt;
                                &amp;lt;span className='p-6 pl-10'&amp;gt;+(92)3035957991&amp;lt;/span&amp;gt;

                            &amp;lt;/div&amp;gt;
                        &amp;lt;/div&amp;gt;
                        &amp;lt;div&amp;gt;
                            &amp;lt;div className='inline-flex space-x-2 items-center' &amp;gt;
                                &amp;lt;svg xmlns="http://www.w3.org/2000/svg"
                                    className="h-5 w-5"
                                    viewBox="0 0 20 20"
                                    fill="currentColor"&amp;gt;
                                    &amp;lt;path d="M2.003 5.884L10 9.882l7.997-3.998A2 2 0 0016 4H4a2 2 0 00-1.997 1.884z" /&amp;gt;
                                    &amp;lt;path d="M18 8.118l-8 4-8-4V14a2 2 0 002 2h12a2 2 0 002-2V8.118z" /&amp;gt;
                                &amp;lt;/svg&amp;gt;
                                &amp;lt;span className='p-6'&amp;gt;ahtisham@gmail.com&amp;lt;/span&amp;gt;

                            &amp;lt;/div&amp;gt;
                        &amp;lt;/div&amp;gt;
                        &amp;lt;div&amp;gt;
                            &amp;lt;div className='inline-flex space-x-2 items-center' &amp;gt;
                                &amp;lt;svg xmlns="http://www.w3.org/2000/svg"
                                    className="h-5 w-5" viewBox="0 0 20 20"
                                    fill="currentColor"&amp;gt;
                                    &amp;lt;path fillRule="evenodd" d="M5.05 4.05a7 7 0 119.9 9.9L10 18.9l-4.95-4.95a7 7 0 010-9.9zM10 11a2 2 0 100-4 2 2 0 000 4z" clipRule="evenodd" /&amp;gt;
                                &amp;lt;/svg&amp;gt;
                                &amp;lt;span className='p-6'&amp;gt;Rawalpindi,Tench Bhata&amp;lt;/span&amp;gt;

                            &amp;lt;/div&amp;gt;
                        &amp;lt;/div&amp;gt;
                    &amp;lt;/div&amp;gt;
                    &amp;lt;div&amp;gt;
                        &amp;lt;span className="inline-flex"&amp;gt;
                            &amp;lt;a href='/#' className="text-gray-500"&amp;gt;
                                &amp;lt;svg
                                    fill="currentColor"
                                    strokeLinecap="round"
                                    strokeLinejoin="round"
                                    strokeWidth="2"
                                    className="w-5 h-5"
                                    viewBox="0 0 24 24"
                                &amp;gt;
                                    &amp;lt;path d="M18 2h-3a5 5 0 00-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 011-1h3z"&amp;gt;&amp;lt;/path&amp;gt;
                                &amp;lt;/svg&amp;gt;
                            &amp;lt;/a&amp;gt;
                            &amp;lt;a href='/#' className="ml-4 text-gray-500"&amp;gt;
                                &amp;lt;svg
                                    fill="currentColor"
                                    strokeLinecap="round"
                                    strokeLinejoin="round"
                                    strokeWidth="2"
                                    className="w-5 h-5"
                                    viewBox="0 0 24 24"
                                &amp;gt;
                                    &amp;lt;path d="M23 3a10.9 10.9 0 01-3.14 1.53 4.48 4.48 0 00-7.86 3v1A10.66 10.66 0 013 4s-4 9 5 13a11.64 11.64 0 01-7 2c9 5 20 0 20-11.5a4.5 4.5 0 00-.08-.83A7.72 7.72 0 0023 3z"&amp;gt;&amp;lt;/path&amp;gt;
                                &amp;lt;/svg&amp;gt;
                            &amp;lt;/a&amp;gt;
                            &amp;lt;a href='/#' className="ml-4 text-gray-500"&amp;gt;
                                &amp;lt;svg
                                    fill="none"
                                    stroke="currentColor"
                                    strokeLinecap="round"
                                    strokeLinejoin="round"
                                    strokeWidth="2"
                                    className="w-5 h-5"
                                    viewBox="0 0 24 24"
                                &amp;gt;
                                    &amp;lt;rect
                                        width="20"
                                        height="20"
                                        x="2"
                                        y="2"
                                        rx="5"
                                        ry="5"
                                    &amp;gt;&amp;lt;/rect&amp;gt;
                                    &amp;lt;path d="M16 11.37A4 4 0 1112.63 8 4 4 0 0116 11.37zm1.5-4.87h.01"&amp;gt;&amp;lt;/path&amp;gt;
                                &amp;lt;/svg&amp;gt;
                            &amp;lt;/a&amp;gt;
                            &amp;lt;a href='/#' className="ml-4 text-gray-500"&amp;gt;
                                &amp;lt;svg
                                    fill="currentColor"
                                    strokeLinecap="round"
                                    strokeLinejoin="round"
                                    strokeWidth="2"
                                    className="w-5 h-5"
                                    viewBox="0 0 24 24"
                                &amp;gt;
                                    &amp;lt;path d="M21 11.5a8.38 8.38 0 01-.9 3.8 8.5 8.5 0 01-7.6 4.7 8.38 8.38 0 01-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 01-.9-3.8 8.5 8.5 0 014.7-7.6 8.38 8.38 0 013.8-.9h.5a8.48 8.48 0 018 8v.5z"&amp;gt;&amp;lt;/path&amp;gt;
                                &amp;lt;/svg&amp;gt;
                            &amp;lt;/a&amp;gt;
                        &amp;lt;/span&amp;gt;
                    &amp;lt;/div&amp;gt;
                &amp;lt;/div&amp;gt;
                {/* form */}


            &amp;lt;/div&amp;gt;
        &amp;lt;/div&amp;gt;

        &amp;lt;Footer /&amp;gt;

    &amp;lt;/div&amp;gt;
)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;br&gt;
`&lt;/p&gt;

</description>
      <category>react</category>
    </item>
  </channel>
</rss>
