编辑而不传递 id 作为标识符

Edit without passing id as identifier

假设我有一个列表和编辑以下模式的项目:

STRING key UNIQUE PRIMARY
STRING value

问题是当使用admin-on-rest时,Edit默认使用id来生成请求,如果没有,则传递undefined。我怎样才能在 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 >
);

提前致谢。

如文档中所述,正确且唯一的方法是编写自定义 restClient。参见 https://marmelab.com/admin-on-rest/FAQ.html#can-i-have-custom-identifiersprimary-keys-for-my-resources