javascript - React-Admin:如何处理对象列表中的输入源
问题描述
在react-admin
中,我有一个input
其来源是对象列表。
<CheckboxGroupInput source="binded_cameras" choices={choices}/>
该binded_cameras
列表如下所示:
"binded_cameras": [
{
"id": 1,
"name": "Cam 1",
"url": "dummyurl.com"
},
{
"id": 4,
"name": "Cam 2",
"url": "dummyurl.com"
}
]
我试图只获取id
要处理的列表。
我试过binded_cameras.id
了,但当然没有用。
如何操作这个对象列表,并只生成一个 id 列表?
解决方案
由于 React-admin 使用 react-final-form,您可以使用 parse() 和 format() 函数在保存到记录和从记录加载时转换输入值,只需将它们作为道具传递给 Input,在本例中为 CheckboxGroupInput:
两个函数的助记符:
parse(): 输入 -> 记录
格式():记录->输入
<CheckboxGroupInput
source="binded_cameras"
choices={choices}
parse={ids => ids.map(id => ({id}))}
format={bindedCameras => bindedCameras.map(b => b.id)}
/>
https://marmelab.com/react-admin/Inputs.html#transforming-input-value-tofrom-record
推荐阅读
- django - 操作错误没有这样的列 DJANGO pythonanywhere
- javascript - 如何在不刷新页面的情况下使用 Vue 切换按钮
- sql-server - 编写用于过滤 SQL Server 表属性的 VB.Net 代码
- javascript - 访问 module.exports 中的父函数
- python - 是否有更好/更有效的方法来为 Pandas 中的特定列生成多条件过滤器?
- c++ - POST 请求使用 wstring 类型截断并使用字符串格式良好
- mongoose - mongoose querying with JSON, not the javascript object?
- python - groupby 在熊猫的两列中计算相同的值?
- string - 如何停止输出不包含句点的字符串?
- apache-spark - 如何使用带有 Spark 2.4.4 的 delta 创建表?