假设我有一个列表和编辑以下架构的项目:
STRING key UNIQUE PRIMARY
STRING value
问题在于,当使用admin-on-rest
时,编辑默认使用id
生成请求,如果没有请求,则传递未定义。如何在SimpleForm
上更改它,以便它使用其他参数而不是id
- 在我的情况下,key
- 。
列表和编辑示例:
export const ParamList = props => (
<List title = "All params" { ...props} >
<Datagrid >
<TextField source = "key" sortable={false} />
<TextField source = "value" sortable={false} />
<EditButton />
</Datagrid>
</List>
);
export const ParamEdit = props => (
<Edit title = {< ParamTitle />} { ...props } >
<SimpleForm >
<TextInput source = "key" />
<TextInput source = "value" />
</SimpleForm>
</Edit >
);
发送编辑时,会发出以下请求:
PUT www.randomurl.com/param/undefined
但我希望它是这样的:
PUT www.randomurl.com/param/<item's key>
我已经在documentation上看到了可以设置自定义请求的整体。但是在考虑是否有更容易的事情,比如在SimpleForm
上添加参数:
export const ParamEdit = props => (
<Edit title = {< ParamTitle />} { ...props } >
<SimpleForm id={"key"}>
<TextInput source = "key" />
<TextInput source = "value" />
</SimpleForm>
</Edit >
);
提前致谢。
答案 0 :(得分:1)
如文档中所述,正确且唯一的方法是编写自定义restClient
。见https://marmelab.com/admin-on-rest/FAQ.html#can-i-have-custom-identifiersprimary-keys-for-my-resources