Хорошо - давайте посмотрим на исходники администратора на отдыхе (файл admin-on-rest/src/util/fetch.js) нас интересует метод fetchJson.
Этот метод возвращает обещание выборки, в котором он пытается разобрать json в этом коде:
try {
json = JSON.parse(body);
} catch (e) {
// not json, no big deal
}
а затем он возвращает это: return { status, headers, body, json };
Но у нас есть тело в результате, и мы можем использовать его повторно, или мы можем использовать проанализированный объект в json
Для вашего примера мы можем сделать это (некоторый код пропущен):
const httpClient = (url, options = {}) => {
if (!options.headers) {
options.headers = new Headers({ Accept: 'application/json' });
}
options.withCredentials = true;
return fetchUtils.fetchJson(url, options).then(({status, headers, body, json}) => {
json = json['results'] ? json['results'] : json;
return {status, headers, body, json};
});
}
Итак, мы просто перезаписали объект json коллекцией из «результатов» в вашей схеме в этой строке:
json = json['results'] ? json['results'] : json;
Теперь вы можете использовать этот клиент в Admin
<Admin restClient={restClient}>
...
</Admin>
ПРЕДУПРЕЖДЕНИЕ!!! Это повлияет на ВСЕ запросы администратора. Но вы можете добавить дополнительный параметр. Если вы не хотите использовать json = json['results'] ? json['results'] : json;
, вы можете добавить дополнительный параметр или проверить выборку метода.
person
Muritiku
schedule
23.11.2017