微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 react-admin 的 SelectArrayInput 元素将数据作为对象数组发送到服务器,即 { clients: [id: 1, id: 2]}?

如何解决如何使用 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 中的数据

  • 将转换函数传递给 transformCreate 组件的 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 举报,一经查实,本站将立刻删除。