将自定义列添加到 admin-on-rest 中的 Datagrid

Add custom column to Datagrid in admin-on-rest

我使用 admin-on-rest 在 React.js 中创建了一个管理面板。我有一个页面显示从 api 中提取数据的用户列表。我需要在 table 的每一行末尾添加一个自定义列,它将为每个用户显示一个进度条。

我正在使用一个名为 rc-progress 的模块来生成进度条。以下是当前在用户列表的单独页面上显示的示例:

import React from 'react';
import { Line } from 'rc-progress';

var Progress = React.createClass({
render: function render() {

    return (
       <Line percent="40" strokeWidth="1" strokeColor="#38bcd5" />
    );
}
});

export default Progress;

我不确定如何将自定义列附加到 admin-on-rest 中的数据网格以添加到该进度条中。

这是我的用户列表代码,它可以正确显示来自 API 的数据。我在要添加进度条的地方添加了评论:

import React from 'react';
import { List, Datagrid, TextField} from 'admin-on-rest';
import { Line } from 'rc-progress';

export const UserList = (props) => (
<List {...props}>
    <Datagrid>
        <TextField source="firstName" />
        <TextField source="lastName" />
        <TextField source="email" />
        <TextField source="phone" />
        <TextField source="type" />

        //I'd like to add the progress bar below:
        //<Line percent="40" strokeWidth="1" strokeColor="#38bcd5" />

    </Datagrid>
</List>

);

导出默认用户列表;

非常感谢任何帮助!

更新(解决方案)

因此,在 Gildas 的推荐下,我尝试使用 FunctionField。这是代码的工作版本。 (进度条现在有硬编码值)

import React from 'react';
import { List, Datagrid, TextField} from 'admin-on-rest';
import { Line } from 'rc-progress';
import { FunctionField } from 'admin-on-rest'

export const UserList = (props) => (
<List {...props}>
    <Datagrid>
        <TextField source="firstName" />
        <TextField source="lastName" />
        <TextField source="email" />
        <TextField source="phone" />
        <TextField source="type" />

        //Here is the working version below:
        <FunctionField label="Progress" render= {function render() { return ( <Line percent="40" strokeWidth="1" strokeColor="#38bcd5" />);}} />

    </Datagrid>
</List>

);


export default UserList;

这是当前的屏幕截图:

FunctionField 应该可以解决问题:https://marmelab.com/admin-on-rest/Fields.html#functionfield

如果没有,您是否尝试过遵循自定义字段文档?