Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
4.0k views
in Technique[技术] by (71.8m points)

javascript - ¿How to get Form values from functional component React?

I'm trying to make a table that receives a new user data that is got in a form. Heres is my code:

import React,{useState}  from 'react'

export default function FormAdd({callbackSubmit,...props}) {

    const [user,setUser] = useState({});

    const handleChangeInput = (name,value) => {
        setUser((last) => {
           
            [name]:value,
        }
        );
    }

    return (
        <form 
        onSubmit={
            (e)=>{
                e.preventDefault();
                callbackSubmit(user)            
            }
        }
        className="formadd-container"
        >
            <input onChange={(e)=>{handleChangeInput(e.target.name,e.target.value)}} name={"firstname"} placeholder="Fist Name" type="text" className="formadd-container__input"/>
            <input onChange={(e)=>{handleChangeInput(e.target.name,e.target.value)}} name={"age"} placeholder="Age" type="text" className="formadd-container__input"/>
            <input onChange={(e)=>{handleChangeInput(e.target.name,e.target.value)}} name={"gender"} placeholder="Gender" type="text" className="formadd-container__input"/>
            <input onChange={(e)=>{handleChangeInput(e.target.name,e.target.value)}} name={"phone"} placeholder="Phone" type="text" className="formadd-container__input"/>
            <input  value="Add" type="submit" className="formadd-container__button"/>
        </form>
    )
}

I get an error >expected ";" inside handleChangeInput function, when I try to set the values for the user object.

Any ideas?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You miss the return in the setState callback.

Replace this :

const handleChangeInput = (name,value) => {
        setUser((last) => {
           
            [name]:value,
        }
        );
    }

By:

const handleChangeInput = (name,value) => {
        setUser((last) => ({
           
            [name]:value,
        })
        );
    }

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

57.0k users

...