编辑而不传递 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
假设我有一个列表和编辑以下模式的项目:
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