我正在尝试找到与我的 React 应用程序一起使用的最佳表格,目前,react-table提供了我需要的一切(分页、服务器端控制、过滤、排序、页脚行)。
话虽如此,我似乎无法选择一行。没有例子可以说明这一点。
我尝试过的一些事情包括尝试在单击行时设置 className。但我似乎无法在e
nor 中找到调用元素t
。另外,我不喜欢这种方法,因为它不是 React 应用程序应该做的事情。
<ReactTable
...
getTrProps={(state, rowInfo, column, instance) => {
return {
onClick: (e, t) => {
t.srcElement.classList.add('active')
},
style: {
}
}
}}
/>
一些可能的解决方法是将复选框呈现为第一列,但这不是最佳选择,因为它限制了单击以“激活”行的区域。此外,视觉反馈将缺乏表现力。
我想念房间里的大象吗?如果没有,你知道另一个支持我之前描述的东西的库吗?
谢谢!
编辑: 另一个选项,这是开源的,是建议编辑。也许这是正确的做法。
编辑 2
另一件事,由 Davorin Ruševljan 在评论中提出,但我无法让它发挥作用:
onRowClick(e, t, rowInfo) {
this.setState((oldState) => {
let data = oldState.data.slice();
let copy = Object.assign({}, data[rowInfo.index]);
copy.selected = true;
copy.FirstName = "selected";
data[rowInfo.index] = copy;
return {
data: data,
}
})
}
....
getTrProps={(state, rowInfo, column) => {
return {
onClick: (e, t) => { this.onRowClick(e, t, rowInfo) },
style: {
background: rowInfo && rowInfo.row.selected ? 'green' : 'red'
}
}
}}
这会将“FirstName”列设置为“selected”,但不会将类设置为“green”