React Admin: useDataProvider внутри Redux Saga - PullRequest
0 голосов
/ 09 мая 2020
• 1000 компонент из этого журнала c.

Начиная с response-admin 3.0, чтобы правильно использовать dataProvider со всей обработкой ошибок и уведомлениями response-admin, я должен использовать ловушку useDataProvider, но - хуки не могут можно использовать из саги, так как же мне организовать несколько запросов из саги?

Или есть другая практика, сохраняя при этом требования, о которых я говорил?

Спасибо!

1 Ответ

1 голос
/ 11 мая 2020

React-admin 3.0 не выделяет саги, и вы можете просто связать вызовы поставщиков данных, используя Promise, возвращающий хук useDataProvier, как описано в документации response-admin (https://marmelab.com/react-admin/Actions.html):

import React from 'react';
import { useDataProvider, useNotify, useRedirect, Button } from 'react-admin';

const ApproveButton = ({ record }) => {
    const notify = useNotify();
    const redirect = useRedirect();
    const dataProvider = useDataProvider();
    const approve = () => dataProvider
        .update('comments', { id: record.id, data: { isApproved: true } })
        .then(response => {
            // call the data provider again here
            data.provider.getMany('...')
        })
        .catch(error => {
            // failure side effects go here 
            notify(`Comment approval error: ${error.message}`, 'warning');
        });

    return <Button label="Approve" onClick={approve} />;
};

Демонстрационный пример react-admin показывает, как получить несколько ресурсов для заполнения сложной страницы (приборной панели), и это должно быть хорошим источником вдохновения для вашего варианта использования:

https://github.com/marmelab/react-admin/blob/master/examples/demo/src/dashboard/Dashboard.tsx

...