当前位置: 首页 > 面试题库 >

如何在react-admin中拥有多个dataProviders的正确方法?

孔永年
2023-03-14
问题内容

我正在尝试在react-admin项目中使用多个dataproviders,但出现错误:

Warning: Missing translation for key: "dataProvider is not a function"
function.console.(anonymous function) @ index.js:1452

我有App.js这样的:

import React from 'react';
import { render } from 'react-dom';
import { Admin, Resource } from 'react-admin';
import dataProviders from './service/dataproviders';
import UserList1,  from './users1';
import UserList2,  from './users2';

const App = () => (
  render(
    <Admin dataProvider={dataProviders}>
      <Resource name="users1" list={UserList1} />
      <Resource name="users2" list={UserList2} />
    </Admin>,
    document.getElementById('root'),
  )
);

export default App;

我有dataproviders.js文件:

import simpleRestProvider from 'ra-data-simple-rest';

const dataProviders = [
  { dataProvider: simpleRestProvider('http://path.to.foo.api1'), resources: ['users1'] },
  { dataProvider: simpleRestProvider('http://path.to.foo.api2'), resources: ['users2'] },
];

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

这是正确的方法吗?


问题答案:

您不是在调用dataProvider找到的对象,而是在从数组中调用映射对象。您可以这样解决:

import simpleRestProvider from 'ra-data-simple-rest';

const dataProviders = [
  { dataProvider: simpleRestProvider('http://path.to.foo.api1'), resources: ['users1'] },
  { dataProvider: simpleRestProvider('http://path.to.foo.api2'), resources: ['users2'] },
];

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


 类似资料:
  • 护士通过请购单向三种不同供应品中的一种订购医疗供应品,所有供应品均由供应商提供。 护士 由于项目可以是三种类型中的一种,并且一个项目的申请可能还不存在,所以申请表具有3种供应类型的外键。 问题是:我正确列出的外键都指向3个不同的表,除了其中一个之外,每个条目都没有相应的外键。 我得到以下错误: 第1行错误:ORA-02091:事务回滚 ORA-02291:违反完整性约束(MMM1339.ITEMN

  • 问题内容: 我们可以在Android中拥有服务的多个实例吗?我想要一种可以在特定时间使手机静音的服务,并且我想重新使用该服务以使手机在特定时间处于振动模式。因此,基本上,如果我可以使该服务多次运行,则无需创建其他服务即可将手机设置为振动模式。另外,如果我们可以运行多个实例,请说明如何停止它。任何代码提示都会有很大帮助。 问题答案: 我们可以在Android中拥有服务的多个实例吗? 不能。您可以具有

  • 房间类别 长话短说,这一点是为了添加房间,并能够导航它们,捡起物品,然后放下它们。在我尝试运行程序时,我注意到我不能有多个北/南/东/西键。我怎样才能避开这件事,这样我才能把它做好?

  • 我有两个不同版本的spring配置,涉及两个不同的java版本,即Java8和Java11 项目结构类似于: pom.xml: 那么,有没有什么方法可以使用两个类而不导致构建失败呢? 此外,我不能使用配置文件和提及类要在特定的配置文件中使用。

  • 我在UI中有一个按钮,在OnClick事件处理程序中,我必须运行一个设置间隔计时器。在设置间隔计时器中,我检查一个条件,如果条件满足,我将更新状态,但它不能正常工作。 00); 在倒计时功能中有一个console.log,它总是打印“0 false”,但UI中的组件网正在更新为正确的数字。 你能告诉我为什么吗 控制台中的计数始终为“0”。log 代码沙盒链接:https://codesandbox

  • 我的应用程序中有两个主要的页面“shell”。第一个shell用于“unauth”页面登录流(背景图像、材质ui纸张),第二个shell用于主仪表板(导航栏、侧边栏等)。 下面的代码是我试图简化遇到的问题的代码。有人能告诉我如何正确地实现这一点吗? 我从另一个StackOverflow帖子中得到了这个尝试,但是上面的代码不起作用。导航到/test1时,Shell1(只是一个表示Shell1的div