【发布时间】:2017-08-27 12:38:11
【问题描述】:
我没有让 ReferenceField 正常工作,因为它只显示“firstName”字段的进度条“旋转”。
我可以成功地使用来自https://jsonplaceholder.typicode.com/ 的数据的示例来使用 simpleRest 客户端,但不能使用我自己的 API 端点。我看到了 GET_LIST 请求 - 响应,然后是带有所有者数据的相关 GET_MANY 响应,但标记为“用户”的参考字段没有呈现。
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"}]
【问题讨论】:
-
你能在控制台看到什么吗?标题总是有所有者吗?如果没有,请尝试在您的
ReferenceField上添加allowEmpty -
是的,标题永远有一个所有者。
标签: admin-on-rest