问题描述
我正在与 reac-admin 合作, 并根据 demo 我有每个资源的索引文件。 例如,这是我对组织资源的索引:
import BusinessIcon from '@material-ui/icons/Business';
import { OrganizationCreate } from './OrganizationCreate';
import { OrganizationEdit } from './OrganizationEdit';
import { OrganizationList } from './OrganizationList';
import { OrganizationShow } from './OrganizationShow';
const resource = {
list: OrganizationList,create: OrganizationCreate,edit: OrganizationEdit,show: OrganizationShow,icon: BusinessIcon,};
export default resource;
除了列表、创建、编辑和显示之外,是否可以向资源添加自定义操作? 我的意思是,例如,我希望我的资源也支持印刷或任何其他行动。
类似:
const resource = {
list: OrganizationList,print: OrgnaizationPrint,};
解决方法
资源允许为预定义的路由定义组件。如果您想为不由 react-admin 处理的路由添加更多组件,您可能需要覆盖 <Admin customRoutes>
属性。
要注册您自己的路由,请创建一个返回 react-router-dom <Route>
组件列表的模块:
// in src/customRoutes.js
import * as React from "react";
import { Route } from 'react-router-dom';
import Foo from './Foo';
import Bar from './Bar';
export default [
<Route exact path="/foo" component={Foo} />,<Route exact path="/bar" component={Bar} />,];
然后,将此数组作为 <Admin>
组件中的 customRoutes 属性传递:
// in src/App.js
import * as React from "react";
import { Admin } from 'react-admin';
import customRoutes from './customRoutes';
const App = () => (
<Admin customRoutes={customRoutes} dataProvider={simpleRestProvider('http://path.to.my.api')}>
...
</Admin>
);
export default App;
处的 react-admin 文档