问题描述
在 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> ); };