我拼命地搜索和堆满了几个小时,“如何在React-admin中使用多个数据提供者”。我发现很多事情都期望我真正需要的。如何在React admin v3中动态使用Firebase数据提供程序+自定义数据提供程序?我使用react-admin-firebase发布信息,还需要使用我们的自定义api进行用户列表。
这是我以多种不同方式尝试过的方法(if-else,switch语句等):
For Example:
import { dataProvider as firebaseProvider } from "./firebase/firebase.utils";
import { usersMockData } from './api/mockData';
const superDataProvider = (type, resource, params) => {
if (resource === 'users') {
return new Promise(resolve => resolve(usersMockData));
}
return firebaseProvider;
};
<Admin
title="My site"
authProvider={authProvider}
dataProvider={superDataProvider}
loginPage={LoginPage}
>
<Resource
name="posts"
options={{ label: "Posts" }}
list={PostsList}
edit={PostsEdit}
show={PostsShow}
create={PostsCreate}
icon={PostsIcon}
/>
<Resource
name="users"
options={{ label: "Users" }}
list={usersList}
show={usersShow}
icon={usersIcon}
/>
</Admin>
// Output error when I try to reach page with posts from firebase: The dataProvider threw an error. It should return a rejected Promise instead.
实际上,已加载用户,但未加载来自Firebase的帖子。有趣的事实是,当我在管理道具中直接使用firebaseProvider时,发布列表的工作情况。 WTF?非常感谢
答案 0 :(得分:1)
哦,快来Connor!它不起作用的原因是如此简单!您只是返回firebaseProvider,而不是调用它并返回结果!因此,请尝试使用此代码,它将绝对容易实现!
const superDataProvider = (type, resource, params) => {
if (resource === 'users') {
return new Promise(resolve => resolve(usersMockData));
}
return firebaseProvider(type, resource, params);
};