React-Admin“获取列表”数据提供者

时间:2020-02-08 18:17:41

标签: reactjs react-admin

我开始使用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 :(得分:0)

您的数据从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

答案 1 :(得分:0)

默认情况下,ra-admin使用键 id name ,如果您的API调用未返回该公司,则必须将其声明为组件上的道具 >

<ReferenceInput label="Session" source="id" reference="sessions" >
  <SelectInput optionText="name_promo" optionValue="_id" />
</ReferenceInput>