从对象列表中逐行渲染 table
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 | };
cellRenderer
需要一个以 rowIndex
作为参数的函数。所以这就是你需要做的:
myRender = (key: string) => (rowIndex: number) => {
return <Cell>{this.data[rowIndex][key]}</Cell>;
};
这是 sandbox
我正在尝试将我的数据绑定到 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 | };
cellRenderer
需要一个以 rowIndex
作为参数的函数。所以这就是你需要做的:
myRender = (key: string) => (rowIndex: number) => {
return <Cell>{this.data[rowIndex][key]}</Cell>;
};
这是 sandbox