addRow = () => {
this.setState(prevState => ({ rowCount: prevState.rowCount + 1 }));
}
render() {
const { rowCount } = this.state;
const renderRow = () => {
return Array(rowCount).fill(1).map((row, i) => (
<div key={i}>
<Input type="text" />
<Button onClick={this.addRow}>+</Button>
</div>
)
}
return renderRow();
}
Что следует отметить здесь
Array(rowCount).fill(1).map((row, i) => {})
инициализирует массив, если rowCount
индексирует, например, 5
, и заполнит каждый index
значением 1
;
Еще одна вещь, которую следует отметить здесь this.setState(prevState => ({ rowCount: prevState.rowCount + 1 }));
, это то, что я беру в предыдущем состоянии rowCount
и добавляю к нему 1
, чтобы обновить новое состояние.