在 react-admin 中创建自定义表单
Create custom form in react-admin
我正在使用 Edit
和 react-admin
中的 SimpleForm
。如何创建自定义表单以允许在提交时自定义 action
和 type
?
App.js
<Resource name="category" list={CategoryList} edit={CategoryEdit} />
index.js
<Edit actions={<CategoryEditActions />} title={<CategoryTitle />} {...props} >
<SimpleForm>
<DisabledInput source="id" />
<DisabledInput source="code" />
<TextInput source="name" />
</SimpleForm>
这里的 api 调用是 /category/:categoryId
和 PUT
请求。我想将 url 修改为 /category/:categoryId/test
,方法为 POST
。有什么方法可以自定义吗?
我已经在我的 CustomDataProvider 中处理了这个 -
case UPDATE:
if(resource === 'category'){
options.method = 'POST';
url = `${apiUrl}/${resource}/${params.id}/test`;
} else {
options.method = 'PUT';
url = `${apiUrl}/${resource}/${params.id}`;
}
break;
有没有其他办法处理?
这是您的 dataProvider
在 react-admin
中的工作(restClient
在 admin-on-rest
中)。您必须创建一个自定义的:
- 对于
react-admin
:https://marmelab.com/react-admin/DataProviders.html#writing-your-own-data-provider
admin-on-rest
:https://marmelab.com/admin-on-rest/RestClients.html#writing-your-own-rest-client
您必须检查资源和类型,然后自行构建提取选项。
我正在使用 Edit
和 react-admin
中的 SimpleForm
。如何创建自定义表单以允许在提交时自定义 action
和 type
?
App.js
<Resource name="category" list={CategoryList} edit={CategoryEdit} />
index.js
<Edit actions={<CategoryEditActions />} title={<CategoryTitle />} {...props} >
<SimpleForm>
<DisabledInput source="id" />
<DisabledInput source="code" />
<TextInput source="name" />
</SimpleForm>
这里的 api 调用是 /category/:categoryId
和 PUT
请求。我想将 url 修改为 /category/:categoryId/test
,方法为 POST
。有什么方法可以自定义吗?
我已经在我的 CustomDataProvider 中处理了这个 -
case UPDATE:
if(resource === 'category'){
options.method = 'POST';
url = `${apiUrl}/${resource}/${params.id}/test`;
} else {
options.method = 'PUT';
url = `${apiUrl}/${resource}/${params.id}`;
}
break;
有没有其他办法处理?
这是您的 dataProvider
在 react-admin
中的工作(restClient
在 admin-on-rest
中)。您必须创建一个自定义的:
- 对于
react-admin
:https://marmelab.com/react-admin/DataProviders.html#writing-your-own-data-provider admin-on-rest
:https://marmelab.com/admin-on-rest/RestClients.html#writing-your-own-rest-client
您必须检查资源和类型,然后自行构建提取选项。