React-Admin "Получить список" DataProvider - PullRequest
2 голосов
/ 08 февраля 2020

Я начинаю использовать пакет react-admin. Я заблокирован в своем развитии, потому что я хотел бы сделать Select с данными другого Resource. И именно поэтому я использую ReferenceField, но я не знаю, почему я получаю эту ошибку при использовании этого элемента.

Error: The response to 'GET_LIST' must be like { data : [{ id: 123, ...}, ...] }, but at least one received data item do not have an 'id' key. The dataProvider is probably wrong for 'GET_LIST

Вот данные, которые я получаю от моего API:

[{"_id":"5e3ec3baa6480d002b24ea90","name_promo":"test","years":"2019-01-01T00:00:00.000Z","__v":0}]

Для информации я использую провайдера ra-data-json-server

Вот мой код:

import React from 'react';
import {
    Create,
    SimpleForm,
    TextInput,
    ReferenceInput,
    SelectInput,
} from 'react-admin';

const CreateUser = (props) => (
    <Create {...props}>
        <SimpleForm>
            <TextInput source="lastName" label="Prénom" />
            <TextInput source="firstName" label="Nom" />
            <TextInput source="email" label="Email" />
            <TextInput source="role" label="Role" />
            <ReferenceInput  label="Session" source="id" reference="sessions"  >
                <SelectInput optionText="name_promo"/>
            </ReferenceInput >
        </SimpleForm>
    </Create>
);

export default CreateUser;

Ответы [ 2 ]

0 голосов
/ 01 мая 2020

ra-admin по умолчанию использует ключи id и name , если ваш вызов API не возвращает эту фирму, вы должны объявить его как опору для компонента

<ReferenceInput label="Session" source="id" reference="sessions" >
  <SelectInput optionText="name_promo" optionValue="_id" />
</ReferenceInput>
0 голосов
/ 10 февраля 2020

Ваши данные возвращаются из API с его полем id с именем "_id" вместо обязательного "id".

Мы решили эту проблему, добавив следующее в наш (python) API.

myData = mongo.get(...)
for x in myData:
    x['id'] = x['_id']  // Now each record has both '_id' and 'id'
return {'data': myData}, HTTPStatus.CREATED
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...