表单作为具有react的功能组件

IT技术 reactjs forms login functional-programming components
2021-05-18 16:45:12

如果我想制作一个包含表单的功能组件,例如登录,并且我想在 App 组件中包含状态并且 Login 将是它的子级,我可以使用 Login 子级中的表单来改变 App 中的状态吗?

4个回答
import React, {useState} from 'react';

function Submit() {

    const [inputField , setInputField] = useState({
        first_name: '',
        last_name: '',
        gmail: ''
    })

    const inputsHandler = (e) =>{
        setInputField( {[e.target.name]: e.target.value} )
    }

    const submitButton = () =>{
        alert(inputField.first_name)
    }

    return (
        <div>
            <input 
            type="text" 
            name="first_name" 
            onChange={inputsHandler} 
            placeholder="First Name" 
            value={inputField.first_name}/>

            <br/>

            <input 
            type="text" 
            name="last_name" 
            onChange={inputsHandler} 
            placeholder="First Name" 
            value={inputField.last_name}/>

            <br/>

            <input 
            type="gmail" 
            name="gmail" 
            onChange={inputsHandler} 
            placeholder="Gmail" 
            value={inputField.gmail}/>

            <br/>

            <button onClick={submitButton}>Submit Now</button>
        </div>
    )
}

export default Submit

是的。将两个props一个对象data和一个方法onChange传递给Loginfrom Appdata将在Login.

消防onChange与更新的形式值是否有任何变化Login形式。

处理它App并更新它的状态,然后流向Loginas data

是的,这是可能的。您只需要将一个props传递给您的子组件。以下是如何执行此操作的示例:

// in parent component

handleChange(updatedData) {
  this.setstate({
    data: updatedData
  })
}

// in render method
<Login handleChange={this.handleChange}/>

// in child component

// calling the handleChange function
this.props.handleChange(newData)

使用类似的东西

const payloadHandler = (e) => {
    setPayload({ ...inputField, [e.target.name]: e.target.value });
};