修改文本字段显示的内容

Modify what Text Field is displaying

我有我的 <ReferenceField>,我可以从中获取一些数据。在这种情况下,我从 API 中获取属性 odata.type。我希望我的 <TextField> 显示此属性,但我想稍微修改显示的输出。现在属性显示如下:HardwareDatabase.CPU。基本上我需要将此输出修改为:CPU

这是我之前描述的代码:

  <ReferenceField label="Type" source="id" reference="Hardware">
    <TextField source="odata.type"/>
  </ReferenceField>

有什么想法可以修改字段的输出吗?

提前致谢。

使用FunctionField:

<ReferenceField label="Type" source="id" reference="Hardware">
    <FunctionField label="Name" render={record => record ? record.odata.type.split(".")[1] : null} />
</ReferenceField>

文档:https://marmelab.com/react-admin/Fields.html#functionfield

注意:请注意,如果 react-admin 发出的获取调用尚未解决,则记录可能未定义。发生这种情况是因为 react-admin 使用它可能已经在其 redux 存储中的数据立即呈现 UI(乐观呈现)。在访问它之前,您必须检查 record 不是 undefined

试试这个:

<ReferenceField label="Type" source="id" reference="Hardware">
   <FunctionField label="Name" render={record => record ? record["odata.type"].split(".")[1] : null} />
 </ReferenceField>