Как добавить дополнительные свойства к ресурсу в react-admin

#react-admin

Вопрос:

Я работаю с reac-администратором, и в соответствии с демонстрацией у меня есть индексный файл для каждого ресурса. например, это мой ресурс undex для организации:

 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,
    create: OrganizationCreate,
    edit: OrganizationEdit,
    show: OrganizationShow,
    print: OrgnaizationPrint,
    icon: BusinessIcon,
};
 

Ответ №1:

Ресурс позволяет определять компоненты для предопределенных маршрутов. Если вы хотите добавить дополнительные компоненты для маршрутов, не обрабатываемых react-admin, вы, вероятно, захотите переопределить <Admin customRoutes> prop.

Чтобы зарегистрировать свои собственные маршруты, создайте модуль, возвращающий список компонентов 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> компоненте:

 // 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 по адресу https://marmelab.com/react-admin/Admin.html#customroutes

Комментарии:

1. Спасибо! но как я могу передать реквизит? Я добавляю пользовательские маршруты = <Точный путь маршрута=»/организации/:идентификатор/представление» визуализация={() =><Точный путь маршрута=»/организации/:идентификатор/представление» визуализация={() =><Карточка организации />} /<Карточка организации />>

2. Ознакомьтесь с документацией react-router