Я хотел бы изменить компонент рабочего класса на функциональный компонент.В основном это поле ввода, которое должно:
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
Может кто-нибудь указать, что мне не хватает (без слишком большого изменения структуры кода, так как я хочу придерживаться своей логики для начинающих)).Thx
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>
)
}
}