默认情况下,ChipField
只能显示字段的内容,至少文档是这样说的。下面的示例显示字段name
的内容。
<ReferenceArrayField source="substances" reference="substances" label="Substanzen">
<SingleFieldList>
<ChipField source="name" />
</SingleFieldList>
</ReferenceArrayField>
但是,我希望ChipField
显示来自多个字段的信息组合的文本:
const Substanz = ({ record }) => {
return record.name+" ("+record.unit+")";
};
<ReferenceArrayField source="substances" reference="substances" label="Substanzen">
<SingleFieldList>
<ChipField source={<Substanz />} /> <---- this does not work!
</SingleFieldList>
</ReferenceArrayField>
但不幸的是,source
只接受字段名称,而不接受像SelectInput
字段的OptionText
道具这样的对象。
预期的方法是什么?
我认为您的自定义SubstanzField
组件几乎就在那里。只需使用MUI
样式化的组件即可制作自己的类似ChipField
外观的组件,并将其直接传递到SingleFieldList
MUI 芯片文档
不知道您是否期望更复杂的解决方案,但这应该足够简单和灵活,适合您的情况。