如何解决如何使用 react-admin 的 SelectArrayInput 元素将数据作为对象数组发送到服务器,即 { clients: [id: 1, id: 2]}?
在 react-admin 我有以下 ReferenceArrayInput
-> SelectArrayInput
组件如下:
<Create {...props}>
<SimpleForm>
<ReferenceArrayInput source="clients" reference="client">
<SelectArrayInput optionText="clientName" />
</ReferenceArrayInput>
</SimpleForm>
</Create>
工作正常,它从 client
源接收数据,id 显示带有 clientName
标签的选项。
但是,当表单提交时,它会向服务器发送以下请求正文:
{
"clients": [1,2,3]
{
我想将其发送为:
{
"clients": [
{"id": 1},{"id": 2},{"id": 3}
]
}
是否有可能,通过设置某些选项还是我应该使用不同的组件?
解决方法
您有两种选择:
-
转换 dataProvider 中的数据
-
将转换函数传递给
transform
或Create
组件的Edit
属性。export const UserCreate = (props) => { const transform = (data) => ({ ...data,clients: data.clients.map((id) => ({ id })),}); return ( <Create {...props} transform={transform}> // Your inputs </Create> ); };
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。