You need to enable JavaScript to run this app. react-admin中SelectArrayInput如何提交对象数组格式数据到服务端?
优惠活动
大模型
产品
解决方案
定价
更多

react-admin中SelectArrayInput如何提交对象数组格式数据到服务端?

方案说明

不需要更换现有组件,react-admin提供了表单值转换的官方能力,有两种常用实现方式:


方案1:单字段级别转换(更推荐当前场景使用)

直接给SelectArrayInput添加parse属性,该属性专门用于将组件输出的原始值转换为服务端需要的格式,示例代码如下:

<Create {...props}>
    <SimpleForm>
        <ReferenceArrayInput source="clients" reference="client">
            <SelectArrayInput 
                optionText="clientName" 
                parse={value => value?.map(id => ({id})) || []}
            />
        </ReferenceArrayInput>
    </SimpleForm>
</Create>

方案2:表单级别全局转换

如果有多个字段需要统一调整提交格式,可以使用Create或SimpleForm的transform属性,对整个表单的提交数据做批量处理,示例代码如下:

<Create 
    {...props}
    transform={data => ({
        ...data,
        clients: data.clients?.map(id => ({id})) || []
    })}
>
    <SimpleForm>
        <ReferenceArrayInput source="clients" reference="client">
            <SelectArrayInput optionText="clientName" />
        </ReferenceArrayInput>
    </SimpleForm>
</Create>

两种方案均兼容现有组件逻辑,不会影响数据源拉取和选项展示的原有功能。

内容的提问来源于stack exchange,提问作者Cesare Contini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 08:09:01