Изменить отображаемое текстовое поле - PullRequest
1 голос
/ 04 апреля 2019

У меня есть <ReferenceField>, где я получаю некоторые данные для работы. В этом случае я получаю атрибут odata.type из моего API. Я хочу, чтобы мой <TextField> отображал этот атрибут, но я хочу немного изменить отображаемый вывод. Прямо сейчас атрибут отображается так: HardwareDatabase.CPU. В основном мне нужно изменить этот вывод, чтобы быть похожим на это: CPU.

Вот мой код, который я описал ранее:

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

Любые идеи, как я могу изменить вывод поля?

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 08 апреля 2019

Попробуйте это:

<ReferenceField label="Type" source="id" reference="Hardware">
   <FunctionField label="Name" render={record => record ? record["odata.type"].split(".")[1] : null} />
 </ReferenceField>
0 голосов
/ 04 апреля 2019

Используйте 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

ПРИМЕЧАНИЕ : помните, что запись может быть неопределенной, если выполнен вызов выборкиby response-admin еще не разрешен.Это происходит потому, что реакции-администратор немедленно отображает пользовательский интерфейс с данными, которые он может уже иметь в своем хранилище с избыточностью (оптимистичный рендеринг).Вы должны проверить, что record не undefined, прежде чем получить к нему доступ

...