我创建了一个动态表,该表是通过从API提取数据来构建的。现在,我想设置所有按钮的id属性,例如-
第1行userId = {card.user_id} <按钮id = {card.user_id}>点击此处
我已经尝试了一个简单的javascript函数。 像-
<button id="11" onClick=handleClick(this.id)>click here</button>
handleClick(id){
console.log(this.id)
}
实际代码是-
<div className='container-fluid'>
<hr />
<table className='table table-striped mt-4'>
<thead>
<tr>
<th>User_Id</th>
<th>User_Name</th>
<th>Email</th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
{this.state.arr.map((card)=>{
return(
<tr>
<td>{card.user_id}</td>
<td>{card.user_name}</td>
<td>{card.user_email}</td>
<td>
<Link to='/dashboard/users/edit'>
<button onClick={this.goToEdit}
className="btn btn-outline-primary ml-2 my-2 my-sm-0">Edit</button>
// I want to set the user_id to this Edit buttons id attribute
</Link>
</td>
<td>
<button onClick={this.onDeleteClick}
className="btn btn-outline-primary ml-2 my-2 my-sm-0">Delete</button>
</td>
</tr>
) })}
</tbody>
</table>
</div>
我想做这样的事情- https://screenshots.firefox.com/AqTlvJOO6KgD0zG5/mrigank.com
答案 0 :(得分:-1)
我的建议是仅使用map
中的索引并使用它。或者,如果您想设置card.user_id
,也可以这样做。
<tbody>
{this.state.arr.map((card, index)=>{
return(
<tr>
<td>{card.user_id}</td>
<td>{card.user_name}</td>
<td>{card.user_email}</td>
<td>
<Link to='/dashboard/users/edit'>
<button id={card.user_id} onClick={this.goToEdit}
className="btn btn-outline-primary ml-2 my-2 my-sm-0">Edit</button>
</Link>
....
答案 1 :(得分:-2)
您可以将id传递给给定元素的value属性。
因此您可以执行以下操作:
{this.state.arr.map((card, index) => {
return(
<tr>
<td>{card.user_id}</td>
<td>{card.user_name}</td>
<td>{card.user_email}</td>
<td>
<Link to='/dashboard/users/edit'>
<button
onClick={this.goToEdit}
className="btn btn-outline-primary ml-2 my-2 my-sm-0"
value={card.user_id}
>Edit
</button>
</Link>
</td>
<td>
<button
onClick={this.onDeleteClick}
className="btn btn-outline-primary ml-2 my-2 my-sm-0"
value={card.user_id}
>Delete
</button>
</td>
</tr>
) })}
然后onClick,您只需要使用该值即可。