【发布时间】:2020-01-24 01:47:25
【问题描述】:
我有一个表单 App.js(父),它呈现构建此表单的两个独立(子)组件:Email.js 和 Button.js。
单击按钮时,警报应显示收集的输入。
据我所知,下面的代码是。有人可以帮我:
- 完成这两个组件并
- 将它们成功连接到父级 (App.js)?
我把它作为一个练习,展示了它是如何与类组件一起工作的。我很难将其转化为有几个孩子的功能组件。
这是我的 App.js 结构:
import React, { useState } from 'react';
import Button from './components/Button.js';
import Email from './components/Email.js';
function App() {
return (
<div>
<form>
<Email />
<Button />
</form>
</div>
);
}
export default App;
我的 Email.js:
import React, { useState } from "react"
function Email() {
const [input, inputChange] = useState({email: ""})
const handleChange = (event) => {
inputChange({[event.target.name]: event.target.value})
}
return (
<div className = "form-group">
<label>Email adress </label>
<input
type="text"
name="email"
placeholder="Enter your email!"
value = {input.email}
onChange = {handleChange}
/>
</div>
)
}
export default Email
还有我的按钮:
import React, { useState} from "react"
function Button() {
return (
<div>
<button onClick={handleClick}>Click me></button>
</div>
)
}
export default Button
【问题讨论】:
-
为什么需要将它们放在
<form>标签内?您打算使用浏览器submit还是HTML5 表单验证?因为否则我认为您不需要<form>标签。然后您将使用自己的函数处理提交和验证。
标签: javascript forms components react-hooks