我没有让ReferenceField正常工作,因为它只显示进度条"旋转"对于' firstName'字段。
我可以成功地使用来自Demo的数据的示例来处理simpleRest客户端,但不能使用我自己的API端点。我看到GET_LIST请求 - 响应,然后是与所有者数据相关的GET_MANY响应,但参考字段标记为' User'没有渲染。
API端点结构的一个不同之处在于,我的API中返回的引用完全符合此结构" resource:io.mydomain。#"
但是,由于第二个API调用被触发并返回数据,因此这似乎并不重要。在这一点上,我需要一些指向下一步的指示......
//App.js
const App = () => (
<Admin dashboard={Dashboard} theme={getMuiTheme(darkBaseTheme)} title="Admin" authClient={authClient} restClient={restClient}>
<Resource name="Asset" list={AssetList} label="Assets" />
<Resource name="Owner" list={UserList} label="Users" />
<Resource name="AssetTitle" list={AssetTitleList} label="Ownership" />
</Admin>
//users.js
export const UserList = (props) => (
<List title="All Users" {...props}>
<Datagrid>
<TextField source="id" />
<TextField source="firstName" />
<TextField source="lastName" />
<TextField source="mobile" />
<EmailField source="email" />
<EditButton />
</Datagrid>
</List>
);
//titles.js
export const AssetTitleList = (props) => (
<List title="All Titles..." {...props}>
<Datagrid>
<TextField source="id" />
<ReferenceField label="User" source="owner" reference="Owner" >
<TextField source="firstName" />
</ReferenceField>
<TextField source="information" />
</Datagrid>
</List>
);
//AssetTitle API returns
[{"$class":"io.mydomain.AssetTitle",
"id":"12345",
"owner":"resource:io.mydomain.Owner#11111",
"asset":"resource:io.mydomain.Asset#991",
"information":""}]
//Owner API returns
[{"$class":"io.mydomain.Owner",
"firstName":"Joe",
"lastName":"Doe",
"email":"joe@doe.com",
"mobile":"",
"id":"11111"}]
答案 0 :(得分:0)
您可能需要清除restClient
中从API返回的数据。
我发现owner
资源的title
字段为resource:io.mydomain.Owner#11111
。但是,id
资源的owner
字段为11111
。
您必须实施自己的restClient
和&#34;清洁&#34;所有已知的ID,例如owner
字段,以便它们只包含id。有关实施您自己的休息客户端的信息,请参阅documentation。