我正在实施管理工具网站,并且我正在使用材料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。非常感谢
答案 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后端时才会遇到麻烦。但是所有问题都得到了解决。)