【发布时间】:2020-12-08 11:32:48
【问题描述】:
因此,我尝试为表格单元格上的每次单击设置样式,当我单击其中一个单元格时,它会在第一次单击时突出显示该单元格,而在第二次单击时它将打开一个弹出窗口。我尝试使用 setstate 设置点击计数和类名,但它突出显示并将点击计数设置为 td 的整个列。到目前为止,这就是我得到的,只是一个 sn-p:
class tableView extends Component {
constructor(props) {
super(props);
this.state = {
data: [],
countClicked: 0,
selected: false
};
handleClickOpen = (val) => {
if (this.state.countClicked === 0) {
this.setState({
selected: true,
countClicked: 1
}))
}
if (this.state.countClicked === 1) {
this.setState({
selected: false
countClicked: 0,
setValueOfRow: val /*this is for pop ups*/
}))
render(){
{data.map((c, i) => (
<tr key={i}>
<td className={this.state.selected ? "activeCell" : "default" }>
<button onClick={() => {
this.handleClickOpen(c.name);
}}>
{c.name ? `${c.name}` : " ? "}
</button>
</td>
<td className={this.state.selected ? "activeCell" :
"default" }>
<button onClick={() => {
this.handleClickOpen(c.age);
}}>
{c.age ? `${c.age}` : " ? "}
</button>
</td>
<td className={this.state.selected ? "activeCell" :
"default" }>
<button onClick={() => {
this.handleClickOpen(c.email);
}}>
{c.email ? `${c.email}` : " ? "}
</button>
</td>
</tr>
}
【问题讨论】:
-
如果您想要每个单元格的单独状态,您需要一个状态数组。单个变量显然不能存储多个单元格的状态。
标签: javascript reactjs html-table datatable setstate