Справочное поле Admin-on-Rest не отображается должным образом
Я не могу заставить 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"}]
1 ответ
Возможно, вам придется очистить данные, возвращенные из вашего API в вашем restClient
,
Я вижу, что owner
поле для title
ресурс resource:io.mydomain.Owner#11111
, Тем не менее id
поле owner
ресурс 11111
,
Вы должны будете реализовать свой собственный restClient
и "очистить" все известные идентификаторы, такие как owner
поле, так что они содержат только идентификатор. Смотрите документацию по реализации собственного отдыха клиента.