【发布时间】:2022-01-21 08:56:28
【问题描述】:
我有一个包含三个输入元素和一个删除按钮的 div。需要的是,当用户单击添加按钮时,它将动态添加此 div,当用户单击删除按钮时,它将删除此 div。我可以使用以下方法动态添加一个输入元素(没有 div 容器)。
- 在状态变量中创建一个数组。
- 借助数组索引(如 name0、name1)为动态输入字段分配名称
如何处理这么多输入字段?当我将整个 div 创建为单独的组件时,问题会进一步扩大。我正在使用基于类的组件。
handleChange=(event) =>
{
this.setState({[event.target.name]:event.target.values});
}
render()
{
return(
<div className="row">
<button type="button" onClick={this.addElement}>Add</button>
<div className="col-md-12 form-group">
<input type="text" className="form-control" name="name" value={this.state.name} onChange={this.handleChange} />
<input type="text" className="form-control" name="email" value={this.state.email} onChange={this.handleChange} />
<input type="text" className="form-control" name="phone" value={this.state.phone} onChange={this.state.phone} />
<button type="button" onClick={this.removeElement}>Remove</button>
</div>
</div>
)
}
【问题讨论】:
-
您是要添加/删除
div,还是添加/删除输入?你质疑这两种情况之间的跳跃。如果是输入,在添加之前如何确定输入的 type 是什么? -
这可能对你有帮助:bapunawarsaddam.medium.com/…
-
@Andy 我正在尝试添加一个包含输入的 div。输入类型是静态的,不会改变。
-
@Pranaykumar 您可以使用数组/对象并将其映射以返回所需的组件。并使用状态推送到数组,它将为您呈现组件
标签: javascript html reactjs