点击时如何检索标签的内部

时间:2019-05-14 09:42:35

标签: reactjs

如何在点击时检索标签的内部内容

我在创建元素时尝试过类似的操作,但是i的值始终等于onClick中的最后一个值。

heads = ['alligator', 'snake', 'lizard'];
for (var i = 0; i < size;i++){
    tHead.push(<th onClick={() => this.handleRowClick(heads[i])}> {heads[i]} </th>);
}

1 个答案:

答案 0 :(得分:0)

尝试:

heads.forEach((head)=>{
    tHead.push(<th onClick={() => this.handleRowClick(head)> {head} </th>});
}

在for循环上使用forEach的优点是索引和值绑定到特定的循环迭代,而不是周围的范围。因此,当循环索引更改时,闭包将保留旧的循环索引。

这也将起作用:

heads.forEach((_, index)=>{
    tHead.push(<th onClick={() => this.handleRowClick(heads[index])> {heads[index]} </th>});
}

或者这个:

for (var i = 0; i < size;i++){
    let j = i;
    tHead.push(<th onClick={() => this.handleRowClick(heads[j])}> {heads[j]} </th>);
}

最后一个有效,因为j绑定到特定的循环迭代,所以在i不变的情况下它不会改变。