gpt4 book ai didi

react-admin - 具有 react-admin v 3.9.6 的多个数据提供者

转载 作者:行者123 更新时间:2023-12-04 17:23:45 24 4
gpt4 key购买 nike

您好,我想在使用 superDataProvider 的 v3 中使用 2 个 dataProvider。并由资源名称决定。我遵循相同的示例但没有成功(我也尝试使用 dataProviderFactory 的演示方式)

import jsonServerProvider from 'ra-data-json-server';
import restProvider from 'ra-data-simple-rest';

const dataProviderRest = restProvider('https://myapi.com');
const dataProviderJson = jsonServerProvider('https://jsonplaceholder.typicode.com');

const superDataProvider = (type: any, resource: any, params: any) => {
if (resource === 'tags') {
return dataProviderRest;
}
return dataProviderJson;
}

export default superDataProvider;

最佳答案

文档说 dataProvider 必须有这些方法:

const dataProvider = {
getList: (resource, params) => Promise,
getOne: (resource, params) => Promise,
getMany: (resource, params) => Promise,
getManyReference: (resource, params) => Promise,
create: (resource, params) => Promise,
update: (resource, params) => Promise,
updateMany: (resource, params) => Promise,
delete: (resource, params) => Promise,
deleteMany: (resource, params) => Promise,
}

所以,我认为可以使用这样的东西:

import jsonServerProvider from 'ra-data-json-server';
import restProvider from 'ra-data-simple-rest';

const dataProviderRest = restProvider('https://myapi.com');
const dataProviderJson = jsonServerProvider('https://jsonplaceholder.typicode.com');

export const superDataProvider = {
...dataProviderJson, // Preserve methods that are not extended

update: (resource, params) => {
if (resource === 'tags') {
return dataProviderRest.update(resource, params);
}
return dataProviderJson.update(resource, params);
}
}

关于react-admin - 具有 react-admin v 3.9.6 的多个数据提供者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64689476/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com