Как правильно реализовать мутацию на странице показа, но не в текущем ресурсе по реагирующему администратору - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть страница показа, и эта страница должна загружать данные из своего ресурса, но эта страница не должна обновлять этот ресурс. Вместо того, чтобы обновлять элемент текущего ресурса, эта страница должна иметь другую мутацию. Например, у меня есть ресурс users и страница mywebsite.com/users/uniq-user-id/show. Я могу видеть пользователя на этой странице. Но когда я нажимаю кнопку - запрос не должен go к ресурсу пользователя и не должен мутировать ресурс пользователя. Вместо этого эта мутация должна go to (например, музыка) и выполнять там мутацию. Я могу использовать хук useMutation, но я не уверен, что использование этого хука и нажатие на кнопку - это лучшее решение. Реакт-админ уже создал компоненты для этого конкретного случая c?

1 Ответ

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

Я думаю, что response-admin не имеет таких пользовательских компонентов и согласен с useMutation.

Вы можете перехватывать запросы к dataProvider, передавая его прокси, и перенаправляя мутацию пользователей:

v2

import { UPDATE, UPDATE_MANY } from 'react-admin'

const routerDataProvider = dataProvider => (verb, resource, params) => {
    if ((verb === UPDATE || verb === UPDATE_MANY) && resource === 'users') {
        resource === 'music'
        //transform params to match music resource expected format 
    }
    return dataProvider(verb, resource, params)
}

v3

const routerDataProvider = dataProvider => ({
    ...dataProvider,
    update: (resource, params) => 
        dataProvider(resource === 'users' ? 'music' : resource, params),
    updateMany: (resource, params) =>
        dataProvider(resource === 'users' ? 'music' : resource, params),
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...