【发布时间】:2017-06-21 21:03:37
【问题描述】:
我想为 React-Virtualized 表中的每一行添加一个附加属性,以便自动化可以更轻松地识别结果行数据,然后对其进行验证。
查看文档和代码,似乎最简单的方法是简单地复制 defaultTableRender 并对其进行修改以添加我想要的数据挂钩,但是我不愿意这样做,因为我不想要维护跟踪对原始功能的更改并将其向前移植的成本。
另一种选择是将 defaultRowRenderer 的结果包装在具有我需要的属性的 div 中,例如:
rowRenderer={(props) => {
return (
<div
key={props.key}
data-hook={data[props.index].id}>
{defaultTableRowRenderer(props)}
</div>
)
}}
这可行,但看起来非常笨重。
另一种选择是克隆元素,然后添加我想要的属性:
rowRenderer={(props) => {
return React.cloneElement(
defaultTableRowRenderer(props),
{'data-hook': data[props.index].id})
}}
这可能是最干净的,尽管我怀疑我应该将我的 SFC 变成一个组件,并将我的粗箭头渲染器变成一个有状态的类函数,这样它就不会在每次渲染时重新创建。
有没有我想念的更简单的方法?
【问题讨论】: