如何使用admin-on-rest在同一个表单中创建另一个实体?

时间:2017-08-28 12:08:26

标签: reactjs admin-on-rest

我有Plants,每个Infos很多..我希望能够编辑/创建Plant并创建附加到其中的Info附件。

以下是我如何构建PlantEdit和PlantCreate:

export const PlantEdit = (props) => (
    <Edit title={<PlantTitle />} {...props}>
        <SimpleForm>
            <TextInput source="name"/>
        </SimpleForm>
    </List>
    </Edit>
);
export const PlantCreate = (props) => (
    <Create {...props}>
        <SimpleForm>
            <TextInput source="name"/>
        </SimpleForm>
    </Create>
);

这里是InfoCreate函数 - 它有一个建议菜单来查找已经存在的植物之一:

export const InfoCreate = (props) => (
    <Create {...props}>
        <SimpleForm>
            <TextInput source="name"/>
        </SimpleForm>
        <ReferenceArrayInput label="Info" source="plantId" reference="plants">
                <SelectArrayInput optionText="name" translate={false}/>
            </ReferenceArrayInput>
    </Create>
);

那些独立工作..但我希望在创建/编辑Plant期间将它们组合起来,以便同时创建Info ..换句话说,工厂ID是“附加的”我通过Plant编辑/创建表单创建信息。我在想一个创建临时Info的弹出窗口,当它被提交时,它会被持久存储到数据库中。

以下是应用配置:

const App = () => (
    <Admin
        theme={getMuiTheme(customTheme)}
        title={<img src="imageserver/logo.png" alt="logo" width="120" height="auto" />}
        restClient={delayedRestClient}
        // restClient={jsonServerRestClient('http://localhost/plants/web/api/v1')}
        loginPage={Login}
        authClient={authClient}
        appLayout={Layout}
        dashboard={Dashboard}
        customRoutes={customRoutes}
        menu={Menu}
        messages={translations}
    >
        <Resource name="plants" list={PlantList} icon={PlantIcon} create={PlantCreate} edit={PlantEdit} />
        <Resource name="infos" list={InfoList} icon={InfoIcon} create={InfoCreate} edit={InfoEdit}  />
    </Admin>
);

export default App;

如何处理?

我尝试导入这些功能,但我遇到了导入/导出问题,因此无效。我也尝试使用内部并以其他形式复制粘贴它们(不知道如何将id从子项传递给父项)但是在导航到父表单时我得到了无限循环..

提前致谢!

0 个答案:

没有答案