繁体   English   中英

从对象列表中按键呈现表格行

[英]Render table row by key from list of objects

我正在尝试将我的数据绑定到blueprint.js Table ,但是文档不清楚如何执行此操作。 如何为blueprint.js Table创建自定义渲染函数以从对象列表中呈现键?

在示例中,默认情况下传递rowIndex

代码:

data = [
  { name: "L/S", col2: "abc" }, 
  { name: "HY", col2: "def" }
];

myRender = (rowIndex: number, key: string) => {
  return <Cell> {this.data[rowIndex][key]} </Cell>;
};

<Table numRows={2}>
  <Column name="not-working" cellRenderer={this.myRender("name")} />
  <Column name="not-working2" cellRenderer={this.myRender("col2")} />
</Table>;

错误:

TypeError
Cannot read property 'undefined' of undefined

  18 | 
  19 | myRender = (rowIndex: number, key: string) => {
> 20 |   return <Cell> {this.data[rowIndex][key]} </Cell>;
     |                                     ^
  21 | };

请参见此处的示例: https//codesandbox.io/s/k9l9q2150r

文档: https//blueprintjs.com/docs/#table.basic-usage

cellRenderer需要一个以rowIndex为参数的函数。 所以这就是你需要做的:

myRender = (key: string) => (rowIndex: number) => {
  return <Cell>{this.data[rowIndex][key]}</Cell>;
};

这是沙箱

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM