首页 > 解决方案 > Ra-data-simple-rest 不工作 | 错误:总计不是数字并且 newRecords.forEach 不是函数

问题描述

我正在尝试按照教程进行操作,现在我必须实现自己的 REST-API。我的格式与教程中描述的所需格式相同。这是我的回复:来自我的 API 的回复

所需的格式如下所示:

// {
//     data: [
//         { id: 126, title: "allo?", author_id: 12 },
//         { id: 127, title: "bien le bonjour", author_id: 12 },
//         { id: 124, title: "good day sunshine", author_id: 12 },
//         { id: 123, title: "hello, world", author_id: 12 },
//         { id: 125, title: "howdy partner", author_id: 12 },
//     ],
//     total: 27
// }

但由于某种原因,我总是得到错误,即 (1) total 不是数字,但邮递员说它是。并且 (2) newRecords.forEach 不是一个函数。

'''

//App.js
import logo from './logo.svg';
import React from 'react';
import { Admin, Resource, ListGuesser } from 'react-admin';
import simpleRestProvider from 'ra-data-simple-rest';
import styles from './App.css';
import SimpleFlow from './diagramm';
import { RuleList, PostList} from './rules';

//http://jsonplaceholder.typicode.com'
const dataProvider = simpleRestProvider('http://localhost:3000/api');
const App = () =>
    <Admin dataProvider={dataProvider} dashboard={SimpleFlow}>
        <Resource name="rules" list={RuleList} />
    </Admin>;

export default App;

'''

'''

//rules.js
import React from 'react';
import { List, Datagrid, TextField, EmailField, DateField, Pagination } from 'react-admin'; 

export const RuleList = (props) => (
    <List {...props} perPage={25}>
        <Datagrid rowClick="edit">
            <TextField source="id" />
            <TextField source="Bezeichnung" />
        </Datagrid>
    </List>

);

'''

标签: javascriptreactjsrestreact-admin

解决方案


问题是由于您的数据样本格式,在这种情况下,您的API将它视为一个对象,但它需要是一个数组。像这样:

[
     { id: 126, title: "allo?", author_id: 12 },
     { id: 127, title: "bien le bonjour", author_id: 12 },
     { id: 124, title: "good day sunshine", author_id: 12 },
     { id: 123, title: "hello, world", author_id: 12 },
     { id: 125, title: "howdy partner", author_id: 12 }
]

推荐阅读