Admin-on-Rest ReferenceField 无法正确呈现

Admin-on-Rest ReferenceField not rendering properly

我没有让 ReferenceField 正常工作,因为它只显示 'firstName' 字段的进度条 "spinning"。

我可以成功地将示例与来自 https://jsonplaceholder.typicode.com/ 的数据一起用于 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"}]

Screenshot of Referencefield rendering

您可能需要在 restClient 中清除从 API 返回的数据。

我看到 title 资源的 owner 字段是 resource:io.mydomain.Owner#11111。但是,owner 资源的 id 字段是 11111.

您必须实现自己的 restClient 和 "clean" 所有已知 ID,例如 owner 字段,以便它们仅包含 ID。请参阅 documentation 关于实现您自己的休息客户端。