我刚开始使用React,所以我创建了一个带有电子邮件和密码字段的基本表单。
我的问题是:为什么setState没有更新状态?
我读过React的文档,它说当[key]没有硬编码时,我们可以使用[key]:value设置State。
在我的代码下面:
import React, { Component } from "react";
class Form extends Component {
constructor(props) {
super(props);
this.state = {
mail : "",
password : ""
};
}
handleInputChange = (event) =>{
this.setState = ({
[event.target.name]: event.target.value
})
}
render() {
return (
<form>
<label>
Email
<input
name="mail"
type="mail"
value={this.state.mail}
onChange={this.handleInputChange}
/>
</label>
<br />
<label>
Mot de passe
<input
name="password"
type="password"
value={this.state.password}
onChange={this.handleInputChange}
/>
</label>
<input type="submit" value="Send" />
</form>
);
}
}
export default Form;
感谢您的帮助
您需要这样定义函数:
chandleInputChange = (event) => {
this.setState({
[event.target.name]: event.target.value
})