如何解决具有自定义数据提供程序的自定义管理组件
我需要自定义Admin组件才能动态更新Resource组件的列表。
该文档提供了一个示例:
import * as React from 'react';
import { useEffect,useState } from 'react';
import { AdminContext,AdminUI,Resource,ListGuesser,useDataProvider } from 'react-admin';
function App() {
return (
<AdminContext dataProvider={myDataProvider}>
<AsyncResources />
</AdminContext>
);
}
function AsyncResources() {
const [resources,setResources] = useState([]);
const dataProvider = useDataProvider();
useEffect(() => {
// Note that the `getResources` is not provided by react-admin. You have to implement your own custom verb.
dataProvider.getResources().then(r => setResources(r));
},[]);
return (
<AdminUI>
{resources.map(resource => (
<Resource name={resource.name} key={resource.key} list={ListGuesser} />
))}
</AdminUI>
);
}
应该与具有getResources()函数的自定义dataprovider一起使用。
好。但是该功能应该是什么样子?还是应该返回什么?因为尝试了很多东西,但没有一个飞起来。
还有。关于React Hook useEffect缺少依赖项的警告:'dataProvider'。到目前为止,在线解决方案尚不可用。因此,我认为我的示例不起作用,但有可能。在这种情况下该如何解决?
是的,简而言之-如何使文档示例中提供的功能正常工作?
+++
编辑:如果有人想知道这是我如何应用我的数据提供者:
import dataProvider from './dataprovider';
function App() {
return (
<AdminContext dataProvider={dataProvider}>
<AsyncResources />
</AdminContext>
);
}
这是我的 get_resources 函数:
getResources: () => {
const url = `${apiUrl}/get_resources`;
return httpClient(url).then(
({ headers,json }) => ({
data: json["data"],total: json["total"]
}));
},
编辑2:
问题可能出在dataprovider之内,因为尝试从此处调用“ isDataProviderOptions”函数时,它失败并显示错误消息“ TypeError:无法将未定义的对象转换为对象”: node_modules / ra-core / esm / dataProvider / getDataProviderCallArguments.js :19 。
或它在调用错误的数据提供程序。不是我提供给AdminContext组件的自定义标签。
我应该添加自定义数据提供程序的代码吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。