reactjs - 在react-admin中是否可以有多个dataProvider?

标签 reactjs react-admin

如果我有多个不同的 REST API 后端(独立的应用程序执行不同的操作),并且我想要一个 UI(基于 React-admin)应用程序能够对这些不同后端管理的实体执行 CRUD ,我很好奇是否可以连接react-admin来做到这一点。

我想象的是,而不是这个(单个/全局 dataProvider):

const App = () => (
    <Admin dataProvider={simpleRestProvider('http://path.to.foo.api')}>
        <Resource name="foos" list={FooList} />
    </Admin>
);

我们可以做这样的事情(特定于资源的数据提供者):

    const App = () => (
        <Admin >
            <Resource name="foos" list={FooList} 
               dataProvider={simpleRestProvider('http://path.to.foo.api')} />
            <Resource name="bars" list={BarList} 
               dataProvider={simpleRestProvider('http://path.to.bar.api')} />
        </Admin>
    );

无论如何,如果您对如何在react-admin中对多个后端进行REST提供建议,我将非常感激。

最佳答案

不,但您可以拥有一个 super dataProvivder,它将根据资源选择合适的数据提供者。像这样的东西:

const dataProviders = [
    { dataProvider: simpleRestProvider('http://path.to.foo.api'), resources: ['foos'] },
    { dataProvider: simpleRestProvider('http://path.to.bar.api'), resources: ['bars'] },
];

export default (type, resource, params) => {
    const dataProviderMapping = dataProviders.find(dp => dp.resources.includes(resource));

    return dataProviderMapping.dataProvider(type, resource, params);
}

关于reactjs - 在react-admin中是否可以有多个dataProvider?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50724915/

相关文章:

reactjs - 具有文本输入基本样式的 React 管理自定义输入组件

reactjs - 有没有办法使 <TabbedShowLayout> 作为可编辑 View ?

react-admin - 当 DataGrid 具有空组件时,如何从列表中删除 "No results found"标签

ReactJS 中的 jsx 不使用 css

javascript - React,出现未捕获的类型错误 : Cannot read properties of undefined (reading 'map' ) on some refreshes

javascript - Reactjs/Typescript 无法将项目数组作为属性传递给子项

reactjs - 如果没有字段/列名称,如何使用 react-admin ChipField?

ruby-on-rails - ruby on Rails 中的部分与 React 有什么区别?

javascript - 每次更改页面时都会调用 React useEffect (with []) (React Router)

mysql - 即使在添加 X-Total-Count 后,分页和排序也无法按预期在 react-admin 中工作