如果我想制作一个包含表单的功能组件,例如登录,并且我想在 App 组件中包含状态并且 Login 将是它的子级,我可以使用 Login 子级中的表单来改变 App 中的状态吗?
表单作为具有react的功能组件
IT技术
reactjs
forms
login
functional-programming
components
2021-05-18 16:45:12
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
传递给Login
from App
。
data
将在Login
.
消防onChange
与更新的形式值是否有任何变化Login
形式。
处理它App
并更新它的状态,然后流向Login
as 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 });
};