Reactjs 我可以使用ReferenceArrayInput编辑对象列表(而不仅仅是ID列表)吗?
在React Admin中,我尝试管理一个项目,它看起来有点像这样:Reactjs 我可以使用ReferenceArrayInput编辑对象列表(而不仅仅是ID列表)吗?,reactjs,react-admin,react-final-form-arrays,Reactjs,React Admin,React Final Form Arrays,在React Admin中,我尝试管理一个项目,它看起来有点像这样: { "title": "Title of my record", "source_id": "525560", "source_timestamp": 1547732039, "tags": [ { "id": 9, "name&q
{
"title": "Title of my record",
"source_id": "525560",
"source_timestamp": 1547732039,
"tags": [
{
"id": 9,
"name": "Tag0",
"description": "Descriptio of tag 0"
},
{
"id": 10,
"name": "Tag1",
"description": "Descriptio of tag 1"
}
]
}
标记作为主项内的对象列表提供
我希望能够管理这个,但我在编辑视图中的代码是错误的:
export const IncidentEdit = props => {
var _tag_ids = [1,2,3,4];
return <Edit title={<IncidentTitle/>} {...props}>
<SimpleForm>
<TextInput fullWidth source="title"/>
<TextField source="description"/>
<ReferenceArrayInput label="tags" reference="tag" source="tags">
<SelectArrayInput>
<ChipField source="name"/>
</SelectArrayInput>
</ReferenceArrayInput>
</SimpleForm>
</Edit>
};
export const IncidentEdit=props=>{
var_tag_ids=[1,2,3,4];
返回
};
这不起作用,因为ReferenceArrayInput希望record.tags
是标记外键的列表。它实际上是一个标签列表(所以我们实际上不需要查找任何东西)。它也失败了,因为它返回的是一个外键列表,而API只是希望返回一个标记对象列表
我们可能会争辩说API设计得很糟糕,但我们能适应这种情况吗
在我将这些记录输入ReferenceArrayInput之前,是否有办法将它们转换为forign键ID列表,然后在将它们发送回API之前,进行相反的操作?或者,我可以更改API,使其只返回外键而不返回实际的标记对象。在这种情况下,您似乎不必获取额外的数据。您的API响应正常,可能只有aproach不正确 为什么不将
ArrayInput
与SimpleIterator
一起使用呢?它允许您编辑嵌套记录中的所有字段,甚至在需要时使用ReferenceInputs
<ArrayInput source="tags">
<SimpleFormIterator>
<TextInput source="id" disabled />
<TextInput source="name" />
<TextInput source="description" />
</SimpleFormIterator>
</ArrayInput>
它不适用于tagid
,如何使用ReferenceArrayInput
检索标记并在其中显示SimpleFormIterator
?请打开一个新线程并在其中ping我。看来你的问题不同了。