【发布时间】:2020-01-23 11:48:54
【问题描述】:
我想将工作类组件更改为功能组件。它基本上是一个输入字段,应该:
1) 动态显示/镜像您输入的任何内容(参见表格下方的 h1) 2) 如果没有输入,则显示“未提供数据”
错误消息显示“编译失败...意外使用“事件””
import React, { useState } from "react"
function Exercise2() {
const [input, inputChange] = useState({firstName: ""})
const handleChange = () => {
inputChange({[event.target.name]: event.target.value});
}
let display
if (useState.firstName != "") {
display = useState.firstName
} else {
display = "no data provided!"
}
return (
<div>
<form>
<input
type="text"
name="firstName"
placeholder="Enter your data here"
value = "input.firstName"
onChange = "handleChange"
/>
</form>
<h1>{display}</h1>
</div>
)
}
export default Exercise2
有人能指出我遗漏的东西吗(不要过多地改变代码结构,因为我想坚持我的初学者逻辑)。谢谢
PS:这是我的课程组件,效果很好,我正在尝试翻译
class Exercise1 extends React.Component {
constructor() {
super()
this.state = {
firstName:""
}
this.handleChange = this.handleChange.bind(this)
}
handleChange (event) {
this.setState({
[event.target.name]: event.target.value
})
}
render() {
let display
if(this.state.firstName != "") {
display=this.state.firstName
} else {
display="no data provided!"
}
return (
<div>
<form>Input:
<input
type="text"
name="firstName"
placeholder = "Enter your data here!"
value={this.state.firstName}
onChange={this.handleChange}
/>
</form>
<h1>{display}</h1>
</div>
)
}
}
【问题讨论】:
-
您缺少
event参数:const handleChange = (event) => { -
@Andy 将此部分更新为此但仍无法正常工作
handleChange (event) => { this.setState({ [event.target.name]: event.target.value }) }
标签: javascript reactjs components conditional-statements react-hooks