У меня есть представление 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>
);