【发布时间】:2020-03-22 06:13:32
【问题描述】:
我在 react.js 中创建了一个基本表单,我可以在用户提交表单后获取值。
但是,当我尝试使用 handleSubmit 函数更改值时,我看不到状态中所做的更改。
我已经制作了一个状态的副本,并且更改会反映在已复制的状态中。但是当我将旧状态设置为等于更新状态时,更改不会反映
我的代码如下
state = {
name: null,
ContactNumber: null
}
handleChange = (event) => {
this.setState({
[event.target.name] : event.target.value
})
}
handleSubmit = (event) => {
event.preventDefault()
let Copystate = JSON.parse(JSON.stringify(this.state))
Copystate.ContactNumber = 100
console.log(Copystate) // displaying the contact number as 100
this.setState({
state : Copystate
})
console.log(this.state) // displays the number which was submitted in the form
}
render(){
return(
<div>
<h2>Form</h2>
<form onSubmit={this.handleSubmit}>
<div>
<label>Name</label>
<input type="text" name="name" required = {true} onChange = {this.handleChange}/>
<label>Contact Number</label>
<input type="number" name="ContactNumber" required = {true} onChange = {this.handleChange}/>
<button type="submit" label="submit" >Submit</button>
</div>
</form>
</div>
);
}
}
谁能告诉我哪里出错了?谢谢
【问题讨论】:
标签: javascript react-state-management react-state reactjs