React
HTML
<div id="app"></div>
React
class TodoApp extends React.Component {
constructor() {
super()
this.state = {
input: [],
items: [],
}
this.handleChangeArray = this.handleChangeArray.bind(this);
}
handleChangeArray(event, i) {
let c = this.state.items;
c[i].value = event.target.value;
this.setState({
items: c,
inputs: c.map((v, i) => {
return <input key={i} value={c[i].value}
onChange={(e) => this.handleChangeArray(e, i)} />
})
})
};
updateMyState(selectedOption) {
var apiData = [{inputs: [{value: "" }]},{inputs: [{value: "" }, { value: "" }, { value: "" }]}]
this.setState({
items: apiData[selectedOption].inputs,
}, () => this.setState({
inputs: apiData[selectedOption].inputs.map((v, i) => {
return <input key={i} value={this.state.items[i].value}
onChange={(e) => this.handleChangeArray(e, i)} />
})
}))
}
render() {
return (
<div>
<div>{this.state.inputs}</div>
<button onClick={() => this.updateMyState(0)}>Form 1</button>
<button onClick={() => this.updateMyState(1)}>Form 2</button>
</div>
)
}
}
ReactDOM.render(<TodoApp />, document.querySelector("#app"))