我在一个主要是Angular应用程序中使用FixedDataTable v0.6.0。
我有以下专栏:
<Column
key={colIndex}
columnKey={countKey}
width={columnWidths[countKey]}
flexGrow={1}
isResizable={true}
allowCellsRecycing={true}
header={<Cell className={HEADER_CELL_CLASS}>{count}</Cell>}
cell={function(cellData) {
var rowIndex = cellData.rowIndex;
var row = tableRows[rowIndex];
var col = row.columns[colIndex];
var tag = count + "_col" + colIndex + "_row" + rowIndex;
var interopOn = !_this.props.isDemo && !col.isTotalConversion;
var className = row.isOverallRow ? OVERALL_CELL_CLASS : "";
className += interopOn ? " interop-tooltip-content interop-on" : "";
return <Cell className={className}
key={tag}
ref={tag}
onClick={_this._onCellClick.bind(_this, row.breakoutKey, col.step.queryStepIdx, tag)}
onMouseEnter={_this.props.onRowMouseEnter.bind(_this, row.breakoutKey)}
onMouseLeave={_this.props.onRowMouseLeave.bind(_this, row.breakoutKey)}
width={columnWidths[countKey]}>
{col.displayCount}
</Cell>
}}
/>
具体来说,在 Cell
标签中,我试图保留对该元素的引用_onCellClick
以便我可以调用 this.refs[refTag]
,获取元素,并在该元素附近放置一个固定元素(工具提示(。
我需要的是:(a( 一种让 ref 属性工作的方法(由于克隆单元的方式,看起来没有(。(b( 获取对绑定到onClick
事件的元素或事件的引用的方法。
呃,我忽略了关于点击和事件的一大点。
我只需要将我的onClick呼叫更改为:onClick={function(e){_this._onInteropCellClick(row.breakoutKey, col.step.queryStepIdx, e);}}
完全绕过引用。