首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >响应虚拟化表cellRenderer onClick方法问题

响应虚拟化表cellRenderer onClick方法问题
EN

Stack Overflow用户
提问于 2017-06-01 00:38:53
回答 1查看 4K关注 0票数 1

我正在使用react虚拟化的数据表,而且我遇到了这个问题。我的目标是将onClick方法附加到单元格中。

我在renderColumns内部有<Table>函数

代码语言:javascript
复制
<AutoSizer disableHeight>
  {({ width }) => (
    <Table
       width={800}
       height={600}
       headerHeight={25}
       rowHeight={30}
       rowCount={list.length}
       rowGetter={({ index }) => list[index]}
    >
       {this._renderColumns(list, 100)}

    </Table>
  )}
</AutoSizer>

renderColumns函数中,我调用this._cellRenderer

代码语言:javascript
复制
_renderColumns(list, columnWidth) {
// create new list for display
return list && Object.keys(list[0])
  ? Object.keys(list[0]).map(column => (
      <Column
        key={column}
        width={columnWidth}
        label={column}
        dataKey={column}
        cellRenderer={this._cellRenderer}
      />
    ))
  : <div className="loading">Loading…</div>;

}

然后在_cellRenderer中,我尝试在onClick事件上调用_onCellClick

代码语言:javascript
复制
_onCellClick() {
  alert('yey');
}

_cellRenderer({
  cellData,
  columnData,
  columnIndex,
  dataKey,
  isScrolling,
  rowData,
  rowIndex,
}) {
  return (
    <div>
      <a onClick={this._onCellClick}>{cellData}</a>
    </div>
  );
}

当我这样做时,我得到了TypeError:无法读取属性'_onCellClick‘的未定义错误。所以它告诉我,this在这个范围内是没有定义的?我做错了什么?

我在这里创造了一个样本。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-01 01:28:13

您必须绑定_cellRenderer,因为您已经绑定了其他两个方法以这种方式使用它。你只是把一个函数作为道具传递到桌子上.如果没有绑定,就不会有“此”,因为类总是处于严格模式。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44296722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档