reactjs - 如何使用 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> ); };
推荐阅读
- asp.net-core - AutoMapper 未检测到外部程序集中的配置文件
- css - 编辑 CSS 动画
- octave - 为什么我的循环打印每个结果,即使我不使用 printf
- ssl - 当我从澳大利亚连接到德国时,为什么我与 Godot 的安全 websocket 连接失败?
- node.js - 猫鼬不允许我使用 camelCase 集合名称
- python - 将品脱单位格式化为短格式符号
- azure - 允许 Azure 网络安全组中的白名单 IP 地址
- sql - 如何根据hive中的时间顺序选择第一条和最后一条记录?
- node.js - 从 Cloud Function 中的 Firebase Firestore 获取数据
- javascript - Jquery在单击时组合来自父li元素的文本以获取路径