【发布时间】:2018-01-16 22:33:42
【问题描述】:
我正在尝试将我的Table.row 的ref 传递给点击处理程序。也许我想通过更改类名来选择一行并在选择时突出显示它。但是它总是记录 null。
尝试:
<Table.Body>
{_.map(data, ({ Name, Version, Type, Modified }) => (
<Table.Row
ref={(ref) => { this.row = ref; }}
className=""
key={Version}
onClick={() => this.handleClick(this.row, Name, Version, Type, Modified)}
>
<Table.Cell>{Name}</Table.Cell>
<Table.Cell>{Version}</Table.Cell>
<Table.Cell>{Type}</Table.Cell>
<Table.Cell>{Modified}</Table.Cell>
</Table.Row>
))}
</Table.Body>
handleClick(row, Name, Version, Type, Modified) {
const me = this;
log.info('logging row', row); //null
log.info('logging row data', Name, Version, Type, Modified); //works
}
有人知道为什么ref 在这里不能正常工作吗?
【问题讨论】:
-
它应该可以工作,尽管您做错的是在地图的每次迭代中重新分配
this.ref。因此,最后一个Table.Row应该被this.ref引用,其他行应该没有引用。也许错误是相关的? -
顺便说一句,你正在覆盖 ref
-
另一件事,我在他们的docs 中看不到对
refs的任何支持。您可能会发现 this pattern 很有帮助。 -
我有一个更好和更react'ish 的解决方案给你。我会把它写成答案
-
那太棒了 - 仍然卡在这里
标签: javascript reactjs semantic-ui semantic-ui-react