#reactjs #datatable #eventhandler
#reactjs #datatable #eventhandler
Вопрос:
У меня есть таблица для пользователя, и я хочу добавить нескольких пользователей в эту таблицу, нажав на мою кнопку «Добавить». Я не могу понять, как должна выглядеть моя функция onChangeHandler и onSubmit!!
Насколько я понимаю, это будет сделано только путем передачи идентификатора / индекса функциям. Я пробовал это, но я делаю что-то не так в этом
class Component extends React.Component {
constructor(props) {
super(props);
this.state = {
id: '',
lastname: '',
firstname: '',
email: ''
};
this.state.displayRow = [
{
name: ''
}
];
this.handleChange = this.handleChange.bind(this);
this.insertRow = this.insertRow.bind(this);
}
handleChange(e) {
console.log(e.target.value);
this.setState({ [e.target.name]: e.target.value });
}
insertRow(user) {
var id = ( new Date() Math.floor(Math.random() * 999999)).toString(36);
this.setState({
displayRow: [
...this.state.displayRow,
{
id: id,
nuid: '',
lastname: '',
firstname: '',
email: ''
}
]
});
}
render() {
return (
<Table responsive className="table_main">
<thead>
<tr className="user-table-row">
<th>ID</th>
<th>Last Name</th>
<th>First Name</th>
</tr>
</thead>
<tbody>
<tr id="table">
<td key={idx}>
<input
key={idx}
type="text"
id="id"
name="id"
value={item.id}
onChange={this.handleChange(idx)}
/>
</td>
<td>
<input
key={idx}
type="text"
id="lastname"
name="lastname"
value={item.lastname}
onChange={this.handleChange}
/>
</td>
<td>
<input
key={idx}
type="text"
id="firstname"
name="firstname"
value={item.firstname}
onChange={this.handleChange}
/>
</td>
</tr>
<td>
<Button
className="additional-add-btn"
style={style}
variant="contained"
onClick={() => {
this.insertRow();
}}
>
Additional User
</Button>
</td>
</tbody>
</Table>
);
}
}
Комментарии:
1. Опубликованный вами код был очень сложным для чтения из-за множества ошибок форматирования, я думаю, что правка правильная, но, пожалуйста, сделайте так, чтобы посторонним было легко следовать вашему коду 🙂
2. следовал шаблону редактирования. Думаю, теперь это выглядит неплохо!
3. должна ли это быть функция arrow
insertRow = (user) => {
?4. Я привязываю ее внутри конструктора.
5. @PurvishOza о, извините, я этого не видел. Где вы используете свое состояние
displayRow
?