- bounty将在7天后过期**。回答此问题可获得+50声望奖励。Konstantin Bodnia希望引起更多人对此问题的关注:我真的需要解决这个问题
我正在使用refine.dev
和AntDesign
构建一个 Jmeter 板。
我的一个实体具有多对多关系,该关系在API中作为具有id
属性的对象数组返回。
{
"id": 1,
"relations": [
{
"id": 1
},
{
"id": 2
}
]
}
我需要建立一个具有"多选"组件的表单。我遵循了这个教程。但不幸的是,它只有"多对一"关系的示例。
首先生成selectProps
,这部分没问题。
const { selectProps: relationsSelectProps } = useSelect<Relation>({
resource: 'relations',
optionLabel: 'name',
defaultValue: record?.relations.map((r) => r.id),
});
问题就来了。当我试图创建一个表单项时
<Form.Item
name={['relations']}
>
<Select
mode="multiple"
{...relationsSelectProps}
/>
</Form.Item>
我不能让它与多个嵌套对象一起工作。
我尝试了不同的名称路径:['relations', 'id']
和['relations', '*', 'id']
尝试玩弄normalize
属性。
我并不想在后端展平这些对象,所以问题是:在项目的响应端,使其工作的最佳实践是什么?
1条答案
按热度按时间gupuwyp21#
因此,第一部分是关于如何尝试设置表单项以与模型保持一致。
Form.Item上带有{[something,child-of-somthing]}的“名称”基本上是点符号
假设我有一个模型,其中包含一个关系,例如
而IC客户看起来像这样
设置Form.Item时,可以使用{[]}获取嵌套值,如
其次,当你超越了refine.dev的基本用例时,使用antd进行多重选择会更加复杂。
我不是100%肯定与您的用例,但例如,当我不得不作出多个选择与自定义标记在它。
但您需要创建与此类似的自定义选项
因为是的,蚂蚁D和精炼组合赢了; Don“不要让你做你想做的事情。你在这里有点与框架作斗争。
希望这对你有点帮助