反应管理员如何在ReferenceField中连接源

时间:2018-07-19 09:25:23

标签: admin-on-rest api-platform.com react-admin

我有一个表“ fos_user”和“ version”,我想显示“ 9.0.1.A”而不是“ / version / 1”。

=> fos_user https://i.imgur.com/C8f0qor.png

=>版本 https://i.imgur.com/HFSKIdz.png

是否可以连接“版本”表的字段以在源代码中显示它,就像这样? https://i.imgur.com/rxJBmtp.png

因为它将阻止我在“版本”表中创建新字段。

最诚挚的问候,

2 个答案:

答案 0 :(得分:0)

反应管理员|如何在ReferenceField中连接源?

答案:

<ReferenceField label="Version" source="version" reference="versions"> <FunctionField render={version => `${version.major}.${version.minor}.${version.patch}.${version.letter}`} /> </ReferenceField>

答案 1 :(得分:0)

我需要图像的前缀。不幸的是,提供的解决方案对我不起作用...一开始我尝试了

<ImageField source="prefix + contentUrl"/>

以及以上解决方案...

最终我找到了以下解决方案:

const MyImageField = ({source, record = {}, ...rest}) => {
    let clonedRecord = JSON.parse(JSON.stringify(record));
    clonedRecord[source] = process.env.REACT_APP_BASE_PATH + clonedRecord[source];
    return <ImageField source={source} record={clonedRecord} {...rest}/>;
};

export const ImageList = props => (
    <List {...props}>
        <Datagrid rowClick="edit">
            <MyImageField source="contentUrl"></MyImageField>
        </Datagrid>
    </List>
);

const dataProvider = baseHydraDataProvider(entrypoint, fetchHydra, apiDocumentationParser);

export default () => (
    <HydraAdmin dataProvider={dataProvider} authProvider={authProvider} entrypoint={entrypoint}>   
        <ResourceGuesser name={"media_objects"} list={ImageList}/>
    </HydraAdmin>
);

以某种方式我需要一个克隆,因为该函数被多次调用(->前缀被添加了x次)。

我将其与API Platform结合使用。

另请参阅:

https://marmelab.com/react-admin/Fields.html#writing-your-own-field-component