我正在尝试使用上面的代码,但是在构建过程中出现错误,提示this.selectTable为空。

有人可以帮我吗?
我遵循了这种逻辑-Access filtered data in ReactTable

  <ReactTableComponent
    ref={this.reactTable}
    className="polls-table"
    defaultPageSize={10}
    getTrProps={(_, rowInfo = {}) => {
      let { index = 0 } = rowInfo;
      return {
        style: {
          background: index % 2 ? "#fafafa" : "#FFFFFF"
        }
      };
    }}
    columns={columns}
    data={polls}
  />
  <Button
    color="primary"
    type="button"
    onClick={download(this.reactTable.current.getResolvedState())}
  >
    Download
    {/* <CSVLink data={myFunction(this.selectTable.getResolvedState())} filename="polls.csv">Export to CSV</CSVLink> */}
  </Button>
</Paper>;

最佳答案

问题在此行内:

onClick={download(this.reactTable.current.getResolvedState())}


现在发生的事情是JS立即运行您的代码以计算onClick处理程序。仅仅因为第一次运行的引用为空,就会发生错误。
相反,您应该拥有的是:

onClick={() => {download(this.reactTable.current.getResolvedState())}}


您还可以添加条件以检查this.reactTable.current不是null

关于javascript - 访问React Table中的过滤数据时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59288782/

10-12 14:06