0

我在一个主要是 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 属性工作的方法(看起来它不是由于 Cell 是如何被克隆的)。(b) 一种获取对绑定到onClick事件的元素或事件的引用的方法。

4

1 回答 1

0

呃,我忽略了关于 onClicks 和事件的一大点。

我只需要将我的 onClick 调用更改为:onClick={function(e){_this._onInteropCellClick(row.breakoutKey, col.step.queryStepIdx, e);}}

完全绕过 refs。

于 2017-06-20T19:59:06.760 回答