【发布时间】:2019-01-31 10:03:48
【问题描述】:
我有一个表格组件,每行和标题都有复选框。除此之外,每一行都有从对象数组dataSet 呈现的名字、姓氏和年龄。我想要一种能够通过单击标题中的复选框并捕获所有数据来选择/取消选择所有行的方法。
同时,我还希望能够选择/取消选择单个行。同样,我想捕获所选每一行的数据。
这是组件:
class Table extends React.Component {
render() {
return(
<table style={{width:"100%"}}>
<tr>
<th><input type="checkbox" name="name1" /></th>
<th>Firstname</th>
<th>Lastname</th>
<th>Age</th>
</tr>
<tbody>{this.renderRow()}</tbody>
</table>
);
}
renderRow = () => {
const dataSet = [
{
FirstName: "Bob",
LastName: "Ross",
Age: 50
},
{
FirstName: "John",
LastName: "Doe",
Age: 20
},
{
FirstName: "Jane",
LastName: "Doe",
Age: 30
}
];
return dataSet.map((item) => {
return (
<tr>
<td><input type="checkbox" name="name1" /></td>
<td>{item.FirstName}</td>
<td>{item.LastName}</td>
<td>{item.Age}</td>
</tr>
)
})
}
};
这是该组件的运行版本:https://codepen.io/anon/pen/exgeBg
【问题讨论】:
-
为什么dataSet在
renderRow中声明? -
@Vencovsky 没有真正的原因,它也可以在外面。
-
答案中是否缺少某些内容?
标签: javascript reactjs