首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用表单修改值

问使用表单修改值
EN

Stack Overflow用户
提问于 2020-04-14 18:25:45
回答 1查看 28关注 0票数 0

我正在创建一个表单来修改我从上一页获取的值。

我不明白的是如何在状态中保存数据。

这是我的代码:

代码语言:javascript
复制
    class ModifyPerson extends Component {
    constructor(props){
    super(props);
    this.state = {
    firstname: this.props.location.state.firstname,
    lastname: this.props.location.state.lastname
    //they come from react-router-dom
    }
    }

handleChange(event){
// There I don't understand how to save every field in the state. So if the user modify the field 
// I would to save the new state.
}

    render(){
    return(
    <form onSubmit={this.handleSubmit}>
     <div>
            <label>FirstName</label>
            <input
              type="text"
              name="firstname"
              placeholder={this.state.firstname}
              value={this.state.firstname}
              onChange={(event) => this.handleChange(event)}
            />

            <label>LastName</label>
            <input
              type="text"
              name="lastname"
              placeholder={this.state.lastname}
              value={this.state.lastname}
              onChange={(event) => this.handleChange(event)}
            />
<button type="button" className="btn btn-primary" type="submit" value="Submit">Send</button>
    </form>
    )}
    }

我想要获得什么:如果用户更改了我想保存在新状态中的字段,如果没有,状态将保持与我在构造函数状态中初始化的状态相同。我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-14 18:32:58

您必须使用setState

代码语言:javascript
复制
handleChange(event){
  this.setState({
    [event.target.name]: event.target.value
  })
}

和handleSubmit

代码语言:javascript
复制
handleSubmit = e => {
  e.preventDefault();
  console.log(this.state.firstname, this.state.lastname);
};
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61205503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档