javascript - 来自表单输入的 Reactjs setState 问题

标签 javascript reactjs onchange

我是 React 世界的新手,我无法从表单输入字段中正确更改状态。我正在构建一个将保存在数据库中的员工文件。我在组件状态下创建了一个配置文件,并从输入字段中获取用户数据。但是,在 OnChange 事件处理函数中,薪水和头条字段不会发生变化。 Candidate是employee的对象表示

this.state = {
  candidate: {
    account: {
      firstName: '',
      lastName: '',
      email: '',
      phone: '',
    },
    salary: '',
    headline: '',
    topSkills: [{
        experience1: '',
        title1: ''
      }, {
        experience2: '',
        title2: ''
      }, {
        experience3: '',
        title3: ''
      },
    ],
  }
}

onChangefunction

handleChange(e) {
  const name = e.target.name;
  const value = e.target.value;
  let copyState = Object.assign({},
    this.state.candidate);
  copyState.account[name] = value;
  copyState.topSkills[name] = value;
  copyState.salary = value;
  copyState.headline = value;
  this.setState(copyState);
}

salary 和 headline 中的输入字段不接受用户输入

<input
  name="salary"
  type="number"
  value={this.state.candidate.salary|| ''}
  onChange={this.handleChange}
/>

任何人都可以向我提供帮助并建议如何在 onChange 函数上构造 setState 吗?

最佳答案

您可以简单地处理输入的变化:

state = {
    candidate: {
        account: {
            firstName: '',
            lastName: '',
            email: '',
            phone: '', 
        },
        salary: '',
        headline: '', 
        topSkills: [ 
        {
            experience1: '', 
            title1: ''
        }, 
        {
            experience2: '', 
            title2: ''
        },
        {
            experience3: '', 
            title3: ''
        },
       ],
     }
 }

handleChange = (e) => {
    this.setState( { candidate: { [e.target.name]: e.target.value }})
}

关于javascript - 来自表单输入的 Reactjs setState 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49832152/

相关文章:

Javascript:根据多个值过滤对象数组

javascript - 打开新标签并关闭当前标签

javascript - ToggleFade 一个带有显示的元素 :none?

javascript - React-Router v4 渲染错误的组件但匹配正确

javascript - webpack 5 模块联合中共享依赖项的树抖动

javascript - ASP.NET/VB.NET : Dropdownlist SelectedIndexChanged not firing with onchange ="javascript:return true;"

javascript - 为什么 $(div#id) 比 $(#id) 慢?

reactjs - react 选择:选择选项后无法映射值

javascript - OnChange 事件无法正常工作

javascript - Javascript 中 DOM 的 onchange 不起作用