为了检索设备类型,我使用一个将检索设备模型,然后使用另一个使用设备模型的字段“typeID”引用设备类型来检索设备类型。
但它显示以下警告:
警告:失败的道具类型:无效的道具翻译类型选择
提供给 ReferenceField 的布尔值,预期函数。
图片代表数据模型(设备有设备模型,设备模型有设备类型)
我发现一个更好的解决方案有点像黑客,但似乎更有效。
以问题为例为了获得设备,只需要类型<ReferenceField>
,它会是这样的:
const EquipList = ({...props}) => {
<List {...props}>
<Datagrid>
<ReferenceFieldController label="Equipment Type" reference="equipmentModel" source="modelID" linkType={false}>
{({referenceRecord, ...props}) => (
<ReferenceField basePath="/equipmentModel" resource="equipmentModel" reference="equipmentType" source="typeID" record={referenceRecord || {}} linkType="show">
<TextField source="name" />
</ReferenceField>
)}
</RefenceFieldController>
</Datagrid>
</List>
}
在上面的例子中<ReferenceFieldController>
获取设备的设备模型,就像<ReferenceField>
。需要标签,因为 RA 使用第一个<ReferenceField>
显示列标题<Datagrid>
,如果您使用国际化,您应该将翻译功能应用于此道具上的正确资源。
<ReferenceController>
获取记录并将其传递为referenceRecord
到一个子函数,该函数将渲染组件以进行现场演示。您不是呈现字段组件,而是渲染<ReferenceField>
获取嵌套关系,然后显示该字段。自从<ReferenceFieldController>
仅将控制器道具传递给其子组件,并且字段组件的道具在嵌套关系中不会执行您想要的操作,您必须将它们显式传递给<ReferenceField>
。你需要通过record
of <ReferenceField>
as referenceRecord || {}
因为最初的referenceRecord
尚未获取并且<ReferenceField>
不适用于空记录。
设置linkType
of <ReferenceFieldController
> 设置为 false 使其不渲染<Link>
会将用户重定向到错误路线的组件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)