Скажем, у вас есть массив ваших различных входов,
let inputArray = [<input id="1"/>,<input id="2"/>,<input id="3"/>]
Объявление состояния, состояние = {inputRenderingArray: []}
Функции для динамического добавления ввода,
AddFirst=()=>this.setState({inputsRenderingArray:[...this.state.inputsRenderingArray, inputArray[0]]})
AddSecond=()=>this.setState({inputsRenderingArray:[...this.state.inputsRenderingArray, inputArray[1]]})
AddThird=()=>this.setState({inputsRenderingArray:[...this.state.inputsRenderingArray, inputArray[2]]})
при рендеринге, при нажатии на кнопку добавления эти элементы помещаются в массив для рендеринга, render () {
return(
<Button onClick={AddFirst}>Add First</Button>
<Button onClick={AddSecond}>Add Second</Button>
<Button onClick={AddSecond}>Add Second</Button>
{this.state.inputsRenderingArray}
)
}