コンポーネントが作成するテーブルでレンダリングされている現在の行の値に基づいてフィールドをレンダリングしたい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 が提案したように、次のように適切なコンテンツを表示するために、それを変更する ReferenceField フィールドに HOC を適用しました。
const CustomField = (props) => (
<span>
{props.record.processed ?
<ReferenceField label="Processed By" source="processedBy_id" reference="Users">
<TextField source="username" />
</ReferenceField>
: <span>Nobody</span> }
</span>
);