在我的项目中使用admin-on-rest

时间:2017-11-23 08:16:00

标签: javascript reactjs grid material-ui admin-on-rest

我正在实施管理工具网站,并且我正在使用材料ui。我使用redux saga来处理异步调用(用于调用服务)。 admin on rest有一些非常有用的组件,比如dataGrid。但是使用它们并不像我想象的那么简单。 最初,为了使用它,你应该将应用程序包装在Admin组件中,就像那样:

const App = () => (
    <Admin restClient={simpleRestClient('http://path.to.my.api/')}>
        <Resource name="posts" list={PostList} />
    </Admin>
);

我从文档中理解的restClient属性是必需的。我想使用前面提到的DataGrid组件,但是当我尝试使用它时,错误显示资源库的mapStateToPros函数中未定义资源。我必须遗漏一些真正重要的东西。但我觉得使用外部库非常复杂。 有人之前使用过此库并为我提供了一些帮助。我只需要使用datagrids。非常感谢

3 个答案:

答案 0 :(得分:1)

Admin-on-rest不是UI库。它是一个管理框架,旨在作为一个整体使用。那里有许多React数据网库。如果您不需要完整的管理员,请不要使用admin-on-rest

答案 1 :(得分:0)

如果您只想使用Datagrid,只需使用Material UI中的Table组件。

答案 2 :(得分:0)

你确定你没有忘记从'admin-on-rest'导入一些内容吗?

您的应用应该声明类似的内容(错过了一些代码):

import React, { Component } from 'react';
import { jsonServerRestClient, Admin, Resource } from 'admin-on-rest';

const restClient = jsonServerRestClient('http://localhost:8000')

class App extends Component {
    render() {
        return (
            <Admin restClient={restClient} >
                <Resource name="vendors" list={VendorList} />
            </Admin>
        );
    }
}

应该声明VendorList:

import React from 'react';
import { List, Datagrid, TextField } from 'admin-on-rest'

export const VendorList = (props) => (
    <List {...props}>
        <Datagrid>
            <TextField source="id" />
            <TextField source="name" />
            <TextField source="description" />
        </Datagrid>
    </List>
);

在此示例中,它将从http://localhost:8000/vendors获取数据 我从来没有遇到过使用admin-on-rest的麻烦(也许只有在使用django-rest后端时才会遇到麻烦。但是所有问题都得到了解决。)