Можно ли использовать startUndoable с настраиваемым действием вact-admin? - PullRequest
0 голосов
/ 22 января 2019

Интересно, возможно ли передать настраиваемое действие с пользовательской выборкой и типом (который не является обновлением) в startUndoable.

Или возможно, что каким-то образом определить шаблон со значениями в meta и на основе этого шаблона представление будет перерисовано?

В этом случае ИМПОРТ обновляет только одно свойство в базе данных с фиксированным значением.

Это действие:

export const importParcel = ({ id }) => ({
    type: IMPORT_PARCEL,
    payload: {
        id
    },
    meta: {
        resource: 'parcels',
        fetch: IMPORT,
        refresh: true,
        onSuccess: {
            notification: {
                body: 'Parcel Imported',
                level: 'info'
            }
        },
        onFailure: {
            notification: {
                body: 'Error: Import failed',
                level: 'warning'
            }
        }
    }
});

Это обработчик:

fetchUtils
.fetchJson(`/${resource}/import/${params.id}`, {
    method: 'PUT',
    headers: getAuthenticationHeaders()
})
.then(res => ({ data: res.json }));

Спасибо за вашу помощь! :)

1 Ответ

0 голосов
/ 29 января 2019

Конечно, как объяснено в документации Оптимистичный рендеринг и Отмена , вы можете создавать любые действия с startUndoable:

import { startUndoable as startUndoableAction } from 'ra-core';

class App extends Component {
    handleImport = () => {
        this.props.startUndoable(importParcel());
    };

    render() {
        return <Button onClick={this.handleImport}>Import Parcel</Button>;
    }
}

export default connect(null, { startUndoable: startUndoableAction })(App);

Ваше действие должно иметь onSuccess уведомление для отображения кнопки отмены.

Остальное должно быть реализовано в вашем провайдере данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...