react-admin - 在 react-admin 中动态加载资源后如何刷新侧边栏菜单
问题描述
我正在使用 react-admin 开发一个应用程序,每个注册用户都将拥有自己的一组动态加载的资源,我们预先不知道确切的资源。用户使用 Auth0 注册和登录。数据是从 Hasura 获取的。该解决方案基于以下示例加载资源:https ://marmelab.com/react-admin/Admin.html#unplugging-the-admin-using-admincontext-and-adminui
动态加载资源正在工作(见下面的片段),但是我需要手动刷新页面才能在侧边栏菜单中查看资源,而侧边栏菜单必须在动态资源可用时立即更新。注销并重新登录后,资源再次不可见,需要再次刷新。
function AsyncResources() {
...
return (
<AdminUI
title="Hasura Dashboard"
dashboard={Dashboard}
history={history}
loginPage={LoginPage}
layout={Layout}
>
{resources.map(resource => (
<Resource name={resource.name} key={resource.name} options={getOptions(resource.name)} list={getList(resource.name)} />
))}
<Resource /> { /* Without this Resource, the initial page doesn't load */ }
</AdminUI>
);
}
我查看了有关同一主题的以下问题,但我找不到针对我的具体问题的明确解决方案:https ://github.com/marmelab/react-admin/issues/5177 并回答:“基本上你为每个资源编写组件,但只启用你想要的。” 这对我来说不是一个解决方案,因为这意味着我必须手动添加每个新注册用户的每个资源。
我已经创建了一个自定义菜单以查看是否有帮助,但显示的行为与默认菜单相同。
如何确保动态加载的资源在菜单中可见,而用户无需在登录后刷新窗口?
解决方案
推荐阅读
- reactjs - 来自 react-router-dom 的 NavLink 不会重新获取页面数据
- php - 如何循环php变量?
- python - Ajax 在 django 中返回“none”
- javascript - 在非组件 JS 文件上使用 refs
- azure - 通过 ARM 模板使用参数(数组类型)为多个对象 ID 设置密钥保管库访问策略
- python - ModuleNotFoundError:没有模块名称“pygame”
- podofo - WkHTMLtoPDF 绘制文本 面朝下
- php - 如何将数组的数字索引转换为关联数组
- python - 确定时间差
- javascript - 自动完成在 Gridview HeaderTemplate 中不起作用