我拼命地上网搜索和stackoverflowing了几个小时 "如何用React-admin使用多个数据提供者"。我找到了很多东西,期望得到我真正需要的东西。如何在React admin v3中使用动态firebase数据提供者+自定义数据提供者?我使用 反应-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的帖子却没有。有趣的是,当我在Admin道具中直接使用firebaseProvider的时候,帖子列表就可以了。这到底是怎么回事?谢谢你
哦,来吧,康纳! 为什么它不工作的原因是如此简单!你只是返回firebaseProject的数据。你只是返回firebaseProvider,而不是调用它并返回结果! 所以,试试这段代码,一定会很轻松的工作!
const superDataProvider = (type, resource, params) => {
if (resource === 'users') {
return new Promise(resolve => resolve(usersMockData));
}
return firebaseProvider(type, resource, params);
};