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

时间:2017-08-27 12:38:11

标签: admin-on-rest

我没有让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"}]

https://jsonplaceholder.typicode.com/

1 个答案:

答案 0 :(得分:0)

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

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

您必须实施自己的restClient和&#34;清洁&#34;所有已知的ID,例如owner字段,以便它们只包含id。有关实施您自己的休息客户端的信息,请参阅documentation