为了检索设备类型,我使用了一个将检索设备模型,然后另一个使用设备模型的字段“typeID”来引用设备类型来检索设备类型。
但是它显示以下警告:
警告:失败的道具类型:提供给 ReferenceField 的布尔类型的无效道具 translateChoice,预期功能。
图片表示数据模型(一个设备有一个设备模型,一个设备模型有一个设备类型)
小智 6
我发现更好的解决方案有点像黑客,但似乎更有效。
以问题示例为例,其中只需要获取设备类型<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>
}
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,<ReferenceFieldController>获取设备的设备模型,例如<ReferenceField>。需要标签,因为 RA 使用第一个<ReferenceField>来显示 中的列标题<Datagrid>,如果您使用国际化,您应该将翻译功能应用于此道具上的正确资源。
<ReferenceController>获取记录并将其作为子函数传递,referenceRecord该子函数将为字段呈现呈现组件。您渲染 a<ReferenceField>以获取嵌套关系,然后显示该字段,而不是呈现字段组件。由于<ReferenceFieldController>仅将控制器道具传递给其子级,并且字段组件的道具不会在嵌套关系中执行您想要的操作,因此您必须将它们显式传递给<ReferenceField>. 你需要传递record的<ReferenceField>作为referenceRecord || {},因为最初的referenceRecord不被取还和<ReferenceField>不与记录为空工作。
将linkTypeof <ReferenceFieldController>设置为 false 使其不会呈现<Link>会将用户重定向到错误路由的组件。
| 归档时间: |
|
| 查看次数: |
3381 次 |
| 最近记录: |