我有一个List
视图,我想根据组件创建ReferenceField
的表中呈现的当前行的值来呈现字段。Datagrid
如何访问当前行的数据?(当前行的列的值)。
我尝试过record.processed
,但我收到一条错误消息,指出记录对象不存在(processed
是记录中的一列,我要检查以格式化字段)。我也试过resource.processed
, this.props.processed
,this.props.record.processed
但没有成功。
显示我正在尝试做的代码如下:
<List title="Sales Inquiries" filter={{ request_type: 'sales' }} {...props}>
<Datagrid>
<TextField source="id" />
<TextField source="firstname" label="First Name" />
<TextField source="lastname" label="Last Name" />
<TextField source="company" />
<TextField source="email" />
<DateField source="timestamp" label="Received" />
{record.processed ?
<ReferenceField label="Processed By" source="processedBy_id" reference="Users">
<TextField source="username" />
</ReferenceField>
: <span>Nobody</span> }
<ShowButton />
</Datagrid>
</List>
编辑
正如@kunal pareek 所建议的那样,将一个 HOC 应用于修改它的 ReferenceField 字段,以显示正确的内容,如下所示:
const CustomField = (props) => (
<span>
{props.record.processed ?
<ReferenceField label="Processed By" source="processedBy_id" reference="Users">
<TextField source="username" />
</ReferenceField>
: <span>Nobody</span> }
</span>
);