反应中的动态形式处理

问题描述 投票:0回答:1

我正在开发具有动态html元素的表单。我想提交表单,但html元素名称未预定义。所有字段(HTML控件是从API提取的。

我能够使用axios获取字段名称和字段初始值。字段数和字段名都是动态的。我还完成了changehandler函数,如下所示

  onChangeHandler = event => {
    this.setState({
      [event.target.name]: event.target.value
    });
  };

下面是状态定义

  state = {
    datajson: [],
    fieldname: []
  };

其中datajson包含所有数据和字段值。 fieldname包含字段名称。

我想提交表单并在json对象(以下是示例json对象)中获取数据,然后可以使用axios将其发送到数据库以更新记录。

postSubmit=()=>{
fieldname1:this.state.fieldvalue,
fieldname2:this.state.fieldvalue1
fieldname2:this.state.fieldvalue2
}

我已经在类组件中定义了以上所有代码。如何实现上述方案的表单提交?

reactjs
1个回答
0
投票

您可以将表单值保存为处于状态的对象,然后将其提交到表单发布中。

onChangeHandler = event => {
  const { fields } = this.state;
  fields[name] = event.target.value;
  this.setState({
    fields,
  });
};

状态看起来像这样:

state = {
  datajson: [],
  fieldname: [],
  fields: {},
};

以及您的提交功能:

postSubmit=()=>{
  // post fields to api.
  const { fields } = this.state;
}

您是否正在寻找类似的东西?

© www.soinside.com 2019 - 2024. All rights reserved.